164 Maximum Gap

1. Question

Given an unsorted array, find the maximum difference between the successive elements in its sorted form.

Try to solve it in linear time/space.

Return 0 if the array contains less than 2 elements.

You may assume all elements in the array are non-negative integers and fit in the 32-bit signed integer range.

2. Implementation

(1) Sort

class Solution {
    public int maximumGap(int[] nums) {
        if (nums == null || nums.length < 2) {
            return 0;
        }

        Arrays.sort(nums);
        int res = 0;

        for (int i = 0; i < nums.length - 1; i++) {
            res = Math.max(res, nums[i + 1] - nums[i]);
        }
        return res;
    }
}

(2) Bucket Sort

3. Time & Space Complexity

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

Bucket Sort: 时间复杂度O(n), 空间复杂度O(n)

Last updated

Was this helpful?