leetcode:Majority Element
2014-12-24 22:44
218 查看
题目的意思是在数组中有一个数值出现的次数超过了数组长度的一半,求出那个数
最直观的做法是进行HashMap的映射,key为num,value为times
但是题意告知有一个数出现次数超过了一半,利用这个信息
对于每一个刚刚出现的num,初始设置他的times为1,遍历数组时,
遇到相同的times就++;遇到不同的时候times--,当times==0时,变换num值,
因为出现times超过一般,所以最后一个就是majority element
public class Solution {
public int majorityElement(int[] num) {
int ans = num[0];
int times = 1;
for(int i = 1; i < num.length; ++i){
if(ans == num[i]){
++times;
}
else if(times > 0){
--times;
}
else{
times = 1;
ans = num[i];
}
}
return ans;
}
}
最直观的做法是进行HashMap的映射,key为num,value为times
但是题意告知有一个数出现次数超过了一半,利用这个信息
对于每一个刚刚出现的num,初始设置他的times为1,遍历数组时,
遇到相同的times就++;遇到不同的时候times--,当times==0时,变换num值,
因为出现times超过一般,所以最后一个就是majority element
public class Solution {
public int majorityElement(int[] num) {
int ans = num[0];
int times = 1;
for(int i = 1; i < num.length; ++i){
if(ans == num[i]){
++times;
}
else if(times > 0){
--times;
}
else{
times = 1;
ans = num[i];
}
}
return ans;
}
}
相关文章推荐
- leetcode- Majority Element
- LeetCode-169:Majority Element (数组中的多数元素)
- leetcode Majority Element
- LeetCode|Majority Element *
- [leetcode 229]Majority Element II
- [LeetCode] Majority Element II
- [LeetCode]Majority Element
- [C++]LeetCode: 50 Majority Element
- [LeetCode] Majority Element solution
- 2018.03.07 leetcode 打卡 #169. Majority Element
- [LeetCode]--169. Majority Element
- [leetcode]: 169. Majority Element
- [LeetCode]Majority Element
- Leetcode: Majority Element
- LeetCode - Majority Element II
- LeetCode-169. Majority Element (Java)
- [leetcode] Add to List 169. Majority Element
- leetcode Majority Element II
- LeetCode之Majority Element
- Leetcode Majority Element