169. Majority Element
来源:互联网 发布:知乎话题 编辑:程序博客网 时间:2024/05/11 22:47
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
问题:求数组中反复出现多次的元素(次数>n/2)
思想:同two sum类似,利用map
public int majorityElement(int[] nums) { if(nums.length==1) return nums[0]; int res=nums[0]; Map<Integer,Integer> map=new HashMap(); map.put(nums[0], 1); for(int i=1;i<nums.length;i++){ if(map.containsKey(nums[i])){ // System.out.println("nums="+nums[i]+"\ttimes="+map.get(nums[i])); if(map.get(nums[i])+1> (nums.length-1)/2) return nums[i]; map.put(nums[i], map.get(nums[i])+1); //System.out.println("nums="+nums[i]+"\ttimes="+map.get(nums[i])); } else{ map.put(nums[i], 1); } } return res; }
(2)O(n)时间复杂度,空间O(1)
public int majorityElement2(int[] nums) {//原地 int major=nums[0]; int count=0; for(int i=0;i<nums.length;i++){ if(count==0){ count++; major=nums[i]; }else if(major==nums[i]){ count++; if(count>(nums.length-1)/2) return major; }else{ count--; } } return major; }
0 0
- 169.Majority Element && 229. Majority Element II
- [LeetCode]169.Majority Element
- LeetCode 169.Majority Element
- 【LeetCode】169.Majority Element
- LeetCode 169. Majority Element
- LeetCode 169. Majority Element
- 169.Majority Element
- [leetcode] 169.Majority Element
- 169. Majority Element
- Leetcode 169. Majority Element
- 【LeetCode】169. Majority Element
- [LeetCode]169. Majority Element
- 169. Majority Element LeetCode
- 169. Majority Element
- 169. Majority Element
- LeetCode 169. Majority Element
- LeetCode 169. Majority Element
- Leetcode 169. Majority Element
- Web基础知识
- Qt取得Windows系统管理员权限(UAC)的方法
- c#调用c++dll接口及回调函数
- python模块之re正则表达式
- 时序收敛:基本概念
- 169. Majority Element
- 现实生活中的例子反应式编程
- ud730深度学习(二)——Word2Vec and CBOW
- ReactNative ListView不显示,需要碰/滑一下才会显示。
- java网络编程____ftp工具类操作
- Manacher算法及其Java实现
- Python中常见的数据结构
- this指针你“造(知道)”吗?
- Groovy入门学习