leetcode_Majority Element
来源:互联网 发布:淘宝和天猫价格策略 编辑:程序博客网 时间:2024/06/04 07:29
描述:
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.
思路:
1.对于这种问题,相信很多人都会想起来直接对数组拍下序,然后取中间值即可return nums[nums.length/2];地球人都知道,哈哈。。。Time:O(n(log(n)),Space:O(k)
2.啥?还有更好的方法?对,其实还真有,先找第一个数字curNum作为锚,count统计curNum目前为止出现的次数,依次遍历数组nums[i],如果nums[i]==curNum,count++;如果不等呢,count--,此时若count==0;再换锚点为curNum=nums[i],并令count==1
3.重复2中的步骤直至遍历完所有的数组元素,那么最后剩下的nagecurNum就是在数组中出现次数大于一半的数字。
代码:
public int majorityElement(int[] nums) { int count=1,curNum=nums[0]; for(int i=1;i<nums.length;i++) { if(nums[i]==curNum) count++; else { count--; if(count==0) { curNum=nums[i]; count=1; } } } return curNum; }
0 0
- leetcode_Majority Element
- leetcode_Majority Element
- Leetcode_Majority Element
- LeetCode_majority-element
- leetcode_Majority Element
- Leetcode_Majority Element
- leetcode_Majority Element II
- leetCode_Majority Element II【多数投票法】
- leetcode_Majority Element (找出现次数大于一半的元素)-easy
- Element
- Element
- element
- element jquery
- element.childNodes
- dom element
- expat:element
- Element Object
- Element 对象
- 设置UTF-8编码
- C/C++知识要点4——printf函数以及cout的计算顺序
- Objective-C基础语法快速入门
- mysql 排序修改删除
- oracle函数:instr
- leetcode_Majority Element
- 三十과 三十六
- 关于http的gzip解压
- mysql where语句
- androidstudio与gradle若干问题的几篇好文
- Java内部类以及匿名内部类学习总结
- struts2工作机制详解
- 南邮 OJ 1799 比赛成绩查询问题
- 如何在android style文件中使用自定义属性