每日一题.164. 最大间距

给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。
如果数组元素个数小于 2,则返回 0。

我的解法:利用Arrays.sort()对数组进行排序,然后遍历数组比较两两比较元素值的差值,保存差值的最大值。

时间复杂度:O(nlogn),空间复杂度:O(logn)

class Solution {
    public int maximumGap(int[] nums) {
        Arrays.sort(nums);
        int max = 0;
        for (int i = 1; i < nums.length; i++) {
            int gap = nums[i] - nums[i-1];
            if (max < gap) {
                max = gap;
            }
        }
        return max;
    }
}

使用计数排序、桶排序可以在线性时间复杂度和空间复杂度的条件下解决此问题

你可能感兴趣的:(每日一题.164. 最大间距)