主元素 II
来源:互联网 发布:windows ce 触摸屏 编辑:程序博客网 时间:2024/06/07 20:26
主元素 II
给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的三分之一。
注意事项
数组中只有唯一的主元素
样例
给出数组[1,2,1,2,1,3,3] 返回 1
挑战
要求时间复杂度为O(n),空间复杂度为O(1)。
标签
相关题目
思路:这道题和上一道题思路基本一样,也是用抵消的方法,不过这个只保证主元素多于总元素的三分之一,而在一个数组中任意一个数出现次数大于n/3总数最多有两个,所以用抵消的方法找出两个最多的,再遍历一遍找出谁是主元素即可(其他大于主元素的k分之一方法都一样)
class Solution {public: /* * @param nums: a list of integers * @return: The majority number that occurs more than 1/3 */ int majorityNumber(vector<int> &nums) { // write your code here int can1=0,can2=0,num1=0,num2=0;//找两个次数最多的数 for(auto n:nums) { if(num1==0) { can1=n; num1++; } else if(can1==n)//一定紧跟(num==0)后,保证刚开始相同的数在一个里 num1++; else if(num2==0) { can2=n; num2++; } else if(can2==n) num2++; else {num1--,num2--; } } num1=num2=0; for(auto n:nums)//第二次遍历 { if(n==can1) num1++; else if(n==can2) num2++; } return num1>num2? can1:can2; }};
主元素 II
Accepted
总耗时: 574 ms
100% 数据通过测试.
还没解决的相关题目
太牛了,把AC的喜悦分享给你的朋友吧!
阅读全文
0 0
- 题目:主元素 II
- 主元素 II
- 主元素 II
- [LintCode] 主元素 II Majority Number II
- *[Lintcode]Majority Number II 主元素 II
- 主元素II和主元素III
- LintCode 47 主元素 II
- 主元素、主元素II、主元素III
- 47.Majority number II-主元素 II(中等题)
- 下一个较大元素II
- 删除链表中的重复元素II
- 删除数组中重复元素II
- Permutations II:有重复元素的排列
- Leetcode Subsets II 有重复元素的组合
- LeetCode | Combination Sum II(元素的和---2)
- Search in Rotated Sorted Array II 存在重复元素
- LeetCode Subsets II (带有重复元素的组合)
- LeetCode OJ 之 Majority Element II(大部分元素2)
- docker--数据卷
- [agc001e]BBQ hard
- JVM_1_运行时内存区域
- 论文:Banerjee A, Ghosh J. On Scaling Up Balanced Clustering Algorithms.[C]笔记
- SSH和SSM流程图
- 主元素 II
- 236. Lowest Common Ancestor of a Binary Tree
- Http协议——Hyper Text Transfer Protocol(超文本传输协议)
- HTML模板引擎-freemarker入门
- WordPress更改“固定链接”后 页面404原因及解决方法(Nginx版)
- 全排列推演+代码
- 排列组合问题集合
- [MYSQL -7]数据过滤
- 【思维】HDU4104Discount【最小子集和】