LeetCode 164 最大間距 HERODING的LeetCode之路

HERODING23發表於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 位有符號整數範圍內。
請嘗試線上性時間複雜度和空間複雜度的條件下解決此問題。

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/maximum-gap
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

解題思路:
這道題的精髓在於排序演算法,看了官方題解用的是桶排序或者是基排序,這裡我不講武德用了sort函式,謝罪,程式碼如下:

class Solution {
public:
    int maximumGap(vector<int>& nums) {
        if(nums.size() < 2){
            return 0;
        } 
        sort(nums.begin(), nums.end());
        int diff = 0;
        for(int i = 0; i < nums.size() - 1; i ++){
            diff = max(diff, nums[i + 1] - nums[i]);
        }
        return diff;
    }
};


/*作者:heroding
連結:https://leetcode-cn.com/problems/maximum-gap/solution/bu-jiang-wu-de-by-heroding/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。*/

想要看桶排序和基排序的朋友可以參考官網的思路

相關文章