leetode【每日一題】164. 最大間距 java

宰了那隻湯姆貓發表於2020-11-26

題幹

給定一個無序的陣列,找出陣列在排序之後,相鄰元素之間最大的差值。

如果陣列元素個數小於 2,則返回 0。

示例 1:

輸入: [3,6,9,1]
輸出: 3
解釋: 排序後的陣列是 [1,3,6,9], 其中相鄰元素 (3,6)(6,9) 之間都存在最大差值 3。
示例 2:

輸入: [10]
輸出: 0
解釋: 陣列元素個數小於 2,因此返回 0。
說明:

你可以假設陣列中所有元素都是非負整數,且數值在 32 位有符號整數範圍內。
請嘗試線上性時間複雜度和空間複雜度的條件下解決此問題。

想法

最好的當然是基於桶排序或者基數排序,可以參考官方題解傳送門

我不管,直接sort後再遍歷一次即可

java程式碼

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

        }
        return  max;
    }
}

我的leetcode程式碼都已經上傳到我的githttps://github.com/ragezor/leetcode

相關文章