leetcode 747. 至少是其他數字兩倍的最大數

從零開始學習的ZHL發表於2020-10-28

在看題目的示例2時,給了我啟發,要想一個數是其他所有數的2倍以上,那它只需要是第2大的數兩倍以上。所以就變成了遍歷一遍陣列,找出其中的最大數和第2大的數,然後比較是不是2倍。

用時0ms

class Solution {
public:
    int dominantIndex(vector<int>& nums) {
        if(nums.size() == 1)
            return 0;
        
        int max1 = INT_MIN;
        int max2 = INT_MIN;
        int index = 0;

        for(int i = 0; i< nums.size(); ++i)
        {
            if(nums[i] > max1)
            {
                max2 = max1;
                max1 = nums[i];
                index = i;
            }else if(nums[i] > max2)
            {
                max2 = nums[i];
            }
        }

        if(max1 >= 2*max2)
            return index;

        return -1;
    }
};

 

相關文章