
229. Majority Element II
发布日期:2021-05-04 11:02:46
浏览次数:28
分类:精选文章
本文共 1430 字,大约阅读时间需要 4 分钟。
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times.
Note: The algorithm should run in linear time and in O(1) space.
Example 1:
Input: [3,2,3]
Output: [3] Example 2:Input: [1,1,1,3,3,2,2,2]
Output: [1,2]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/majority-element-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。找出出现次数大于n/3的数。
结果肯定是一个或者两个。
先选出两个候选者,再判断它出现的次数是否满足。
class Solution { public ListmajorityElement(int[] nums) { int a = 0; int b = 0; int counta = 0; int countb = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] == a) { counta++; } else if (nums[i] == b) { countb++; } else if (counta == 0) { a = nums[i]; counta++; } else if (countb == 0) { b = nums[i]; countb++; } else { counta--; countb--; } } counta = 0; countb = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] == a) { counta++; } else if (nums[i] == b) { countb++; } } List ans = new ArrayList<>(); if (counta > nums.length / 3) { ans.add(a); } if (countb > nums.length / 3) { ans.add(b); } return ans; }}
发表评论
最新留言
很好
[***.229.124.182]2025年04月10日 02时27分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
智能合约开发实践(1)
2021-05-08
2. Spring Boot学习——Yaml等配置文件教程
2021-05-08
MATLAB——操作矩阵的常用函数
2021-05-08
CMake自学记录,看完保证你知道CMake怎么玩!!!
2021-05-08
Eigen库中vector.transpose()函数什么意思
2021-05-08
ORB-SLAM2:LocalMapping线程学习随笔【李哈哈:看看总有收获篇】
2021-05-08
ORB-SLAM2:LoopClosing线程学习随笔【李哈哈:看看总有收获篇】
2021-05-08
牛客练习赛56 D 小翔和泰拉瑞亚(线段树)
2021-05-08
hdu6434 Problem I. Count(数论)(好题)
2021-05-08
NC15553 数学考试(线性DP)
2021-05-08
MySQL隐藏文件.mysql_history风险
2021-05-08
如何通过文件解析MySQL的表结构
2021-05-08
C++的编译过程及原理
2021-05-08
Vue——父组件将方法传递给子组件
2021-05-08
文件加密软件对于企业发展而言有何优势?局域网数据防泄密工作应该如何入手?
2021-05-08
Beautiful Soup基础入门
2021-05-08
js求阶乘
2021-05-08