164. Maximum Gap

Description

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

Return 0 if the array contains less than 2 elements.

Note:

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

  • Try to solve it in linear time/space.

Constraints

Approach

  • GeeksforGeeks

  • ProgramCreek

  • YouTube

Examples

Input: [3, 6, 9, 1]

Output: 3

Explanation: The sorted form of the array is [1,3,6,9], either (3,6) or (6,9) has the maximum difference 3.

Solutions

/**
 * Time complexity : 
 * Space complexity : 
 */

class Solution {
    public int maximumGap(int[] nums) {
        if(nums == null || nums.length < 2) return 0;
        
        Arrays.sort(nums);
        
        int maxGap = 0;
        for(int i = 1; i < nums.length; i++) {
            if((nums[i]-nums[i-1]) > maxGap) {
                maxGap = nums[i]-nums[i-1];
            }
        }
        
        return maxGap;
    }
}

Follow up

Last updated

Was this helpful?