每日一题.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;
    }
}

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容