列表

详情


NC389. 最大差值(二)

描述

给定一个长度为 n 的数组,请你计算这个数组排序后所有相邻数字最大差值。请考虑线性复杂度的做法。

数据范围:,数组中的值都满足

示例1

输入:

[5,3,4,5,7]

输出:

2

说明:

排序后的数组是 3 4 5 5 7 ,最大差值是 2

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 38ms, 内存消耗: 4092KB, 提交时间: 2022-04-06

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    int maxGap(vector<int>& nums) {
        // write code here
        sort(nums.begin(),nums.end());
        int maxnum=0;
        for(int i=0,j=1;j<nums.size();i++,j++)
        {
            maxnum=max(nums[j]-nums[i],maxnum);
        }
        return maxnum;
    }
};

C++ 解法, 执行用时: 39ms, 内存消耗: 4096KB, 提交时间: 2022-07-18

class Solution {
  public:
    int maxGap(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        int z = 0;     
        for (int i = 0, j = 1; j < nums.size(); i++, j++) {z = max(nums[j] - nums[i], z);}
        return z;
    }
};

C++ 解法, 执行用时: 39ms, 内存消耗: 4120KB, 提交时间: 2022-03-24

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    int maxGap(vector<int>& nums) {
        // write code here
        sort(nums.begin(),nums.end());
        int max=INT_MIN;
        for(int i=1;i<nums.size();i++)
        {
            if(nums[i]-nums[i-1]>max)
            {
                max=nums[i]-nums[i-1];
            }
        }
        return max;
    }
};

C++ 解法, 执行用时: 40ms, 内存消耗: 4080KB, 提交时间: 2022-04-19

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    int maxGap(vector<int>& nums) {
        // write code here
        if (nums.size() <= 1) {
            return 0;
        }
        sort(nums.begin(), nums.end());
       
        int res = INT_MIN;
        for (int i = 1; i < nums.size(); i++) {
            res = max(res, nums[i] - nums[i - 1]);
        }
        return res;
    }
};

C++ 解法, 执行用时: 40ms, 内存消耗: 4084KB, 提交时间: 2022-04-20

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    int maxGap(vector<int>& nums) {
        // write code here
        sort(nums.begin(), nums.end());
        int ans = 0, n = nums.size();
        for (int i=1; i<n; ++i) {
            ans = max(ans, abs(nums[i] - nums[i-1]));
        }
        return ans;
    }
};

上一题