c++ unordermap map簡單用法,leetcode 169unordered_map,寫法

169多數元素

//unordered_map因爲內部實現了哈希表,因此其查找速度非常的快,但是哈希表的建立比較耗費時間。
//.有序性,這是map結構最大的優點,內部實現一個紅黑書使得map的很多操作在lgn的時間複雜度下就可以實現
//空間佔用率高,因爲map內部實現了紅黑樹,雖然提高了運行效率,但是因爲每一個節點都需要額外保存父節點、孩子節點和紅/黑性質,使得每一個節點都佔用大量的空間。適用處:對於那些有順序要求的問題,用map會更高效一些。
[3,2,3]
class Solution {
public:
    int majorityElement(vector<int>& nums) {
        unordered_map<int,int> counts;////key value結構,keykey 是數字,value是出現次數
        int majority = 0,cnt=0;
        for(int num:nums){  //c++11的新特性,for 使用
            // std:cout<<counts[num];//int類型 初始化默認0,下面執行兩步,添加鍵值對{{3,0}},value+1
            //{{3,1}},下次循環再出現再累加出現次數
            ++counts[num];   ////添加鍵值對,{{1,0+1}} 1出現1次,並累加元素出現次數
            ////每次循,判斷上述元素出現次數中,更新最大的次數和對應元素
            if (counts[num]>cnt){ //cnt統計每個元素出現次數
                cnt = counts[num];  //更新元素出現的頻率
                majority = num;   //majority跟蹤最大的鍵值,
               
            }
            
        }
        return majority;


    }
};




c++ map與unordered_map區別及使用
https://blog.csdn.net/BillCYJ/article/details/78985895

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章