【陣列】1394. 找出陣列中的幸運數(簡單)

小學三年級01班發表於2020-10-06

【題目】
在整數陣列中,如果一個整數的出現頻次和它的數值大小相等,我們就稱這個整數為「幸運數」。給你一個整數陣列 arr,請你從中找出並返回一個幸運數。如果陣列中存在多個幸運數,只需返回 最大 的那個。如果陣列中不含幸運數,則返回 -1 。
【示例1】
輸入:arr = [2,2,3,4]
輸出:2
解釋:陣列中唯一的幸運數是 2 ,因為數值 2 的出現頻次也是 2
【示例2】
輸入:arr = [1,2,2,3,3,3]
輸出:3
解釋:1、2 以及 3 都是幸運數,只需要返回其中最大的 3 。
【示例3】
輸入:arr = [2,2,2,3,3]
輸出:-1
解釋:陣列中不存在幸運數。
【示例4】
輸入:arr = [5]
輸出:-1
【示例5】
輸入:arr = [7,7,7,7,7,7,7]
輸出:7
【提示】
1 <= arr.length <= 500
1 <= arr[i] <= 500
【程式碼】

class Solution {
public:
    unordered_map<int,int> m;
    int findLucky(vector<int>& arr) {
        int rs=-1;
        for(auto x:arr) 
            m[x]++;
        for(auto [key,value]:m)
            if(key==value)
                rs=max(rs,key);
        return rs;
    }
};

相關文章