Majority Element II
来源:互联网 发布:网络剧排行榜2016 编辑:程序博客网 时间:2024/06/04 17:50
Given an integer array of size n, find all elements that appear more than⌊ n/3 ⌋
times. The algorithm should run in linear time and in O(1) space.
Hint:
- How many majority elements could it possibly have?
- Do you have a better hint?Suggest it!
思路:还是用之前的方法,进行投票,首先分析一个为n长数组,元素能大于n/3的,最多只能有两个。
然后用上个Majority Element的方法,进行投票,这里有个tricky的地方就是用if else if来进行判断,这样才能保证最后筛选出来的是两个不同的结果。
然后这题还需要验证一下,因为有可能找出来的不是majority,跟上题不一样的是,上题保证了有唯一解,这题没有保证,可能找出来的不是,所以最后需要再check一下。
然后输出。
public class Solution { public List<Integer> majorityElement(int[] nums) { List<Integer> list = new ArrayList<Integer>(); int m = 0; int countm = 0; int n = 0; int countn = 0; for(int a: nums){ if(a == m){ countm++; } else if(a == n){ countn++; } else if(countm == 0){ m = a; countm = 1; } else if(countn == 0){ n = a; countn = 1; } else { countm--; countn--; } } countm = 0; countn = 0; for(int a: nums){ if(a == m){ countm++; } else if(a == n){ countn++; } } if(countm > nums.length/3) list.add(m); if(countn > nums.length/3) list.add(n); return list; }}
0 0
- Majority Element && Majority Element II
- Majority Element II
- [LeetCode] Majority Element II
- 229.Majority Element II
- Majority Element II
- [leetcode] Majority Element II
- Majority Element II
- #leetcode#Majority Element II
- 【LeetCode】Majority Element II
- LeetCode Majority Element II
- LeetCode - Majority Element II
- Majority Element II
- LeetCode Majority Element II
- leetcode: Majority Element II
- [LeetCode] Majority Element II
- leetcode--Majority Element II
- LeetCode229:Majority Element II
- Majority Element II
- FORMS进阶之——新增菜单项实现相关功能
- seo 几点学习经验
- oracle 自定义列转行函数
- FORMS进阶之——规范化触发器内容
- init
- Majority Element II
- HDU 5842 Lweb and String (水题)
- jsp到javabean数据传递
- hdu5833Zhu and 772002
- Json使用的困惑
- FORM开发入门1——利用单张表作源
- 测试人员应该具备哪些软技能
- 网络与RPC
- 可靠性测试和软件性能测试数据总结