Leetcode刷題——求眾數
大家好,抽空刷了一道題,也是一道簡單的陣列題,但是因為我用了map而且一次就通過了,感覺還是有必要寫下來記錄一下map的使用。題目如下:
思路如下:
首先用sort對陣列進行排序,然後定義一個<int,int>型的map,第一個int為數重複的次數,第二個int為對應的數。遍歷陣列將重複的數和次數依次寫入map。然後定義一個迭代器it,迴圈查詢map中第一個int中的最大且大於len/2的值。最後使用find查詢,尋找該最大值對應的map中的迭代器的位置,然後讀取該位置第二個int即其對應的數即可。
程式碼如下:
class Solution {
public:
int majorityElement(vector<int>& nums) {
int len = nums.size();
int cont = len / 2;
sort(nums.begin(),nums.end());
map<int,int> my_map;
int i = 0;
while(i < len){
int temp = nums[i];
int flag = 1;
i++;
while(nums[i] == temp){
flag++;
i++;
}
my_map.insert(pair<int,int>(flag,temp));
}
map<int,int>::iterator it;
it = my_map.begin();
int result = 0;
int result_num = 0;
while(it != my_map.end()){
if(it -> first > result && it -> first > cont){
result = it -> first;
}
it++;
}
it= my_map.find(result);
result_num = it -> second;
return result_num;
}
};
希望後面會更加熟練應用map,我們下期見!
相關文章
- 【leetcode】求眾數LeetCode
- Leetcode刷題之 【最近的請求次數】LeetCode
- LeetCode每日一題:求眾數(No.169)LeetCode每日一題
- 【LeetCode】求眾數(四種方法)LeetCode
- LeetCode169求眾數——分治LeetCode
- 演算法題:求眾數演算法
- LeetCode 之 JavaScript 解答第169題 —— 求眾數 I(Majority Element)LeetCodeJavaScript
- [LeetCode 刷題] 1. 兩數之和LeetCode
- [LeetCode 刷題] 2. 兩數相加LeetCode
- Leetcode刷題筆記 501. 二叉搜尋樹中的眾數LeetCode筆記
- Leetcode 169:求眾數(最詳細的解法!!!)LeetCode
- #leetcode刷題之路1-兩數之和LeetCode
- 【LeetCode刷題】896. 單調數列LeetCode
- 【演算法解題報告】求眾數演算法
- LeetCode刷題整理LeetCode
- leetcode刷題(一)LeetCode
- LeetCode刷題 堆LeetCode
- LeetCode 刷題—樹LeetCode
- 演算法面試題彙總_2求眾數演算法面試題
- LeetCode 刷題指南(一):為什麼要刷題LeetCode
- LeetCode 刷題筆記LeetCode筆記
- leetcode刷題筆記LeetCode筆記
- LeetCode刷題記錄LeetCode
- 如何使用leetcode刷題LeetCode
- leetcode刷題--Majority ElementLeetCode
- leetcode刷題--Count PrimesLeetCode
- leetcode刷題--Reverse BitsLeetCode
- leetcode刷題--Rotate ArrayLeetCode
- leetcode刷題--Count and SayLeetCode
- Leetcode刷題分類LeetCode
- Leetcode刷題準備LeetCode
- LeetCode刷題—陣列LeetCode陣列
- 【LeetCode刷題】509. 斐波那契數LeetCode
- Leetcode刷題628. 三個數的最大乘積LeetCode
- leetcode刷題筆記605LeetCode筆記
- Leetcode刷題系列彙總LeetCode
- leetcode刷題--Happy NumberLeetCodeAPP
- leetcode刷題--Number of 1 BitsLeetCode