LeetCode 229. Majority Element II
来源:互联网 发布:linux mint 18 kde下载 编辑:程序博客网 时间:2024/06/03 11:18
问题描述
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.
问题分析
给定一个数组,当前数组中所有的出现次数超过1/3的值。做法了之前的求超过一半的值的做法有些类似,但是有不一样。这里需要设置两个值,同时得到的结果需要在一次进行判断是否超过了1/3.
代码实现
public List<Integer> majorityElement(int[] nums) { int firstNum = 0, firstCout = 0; int secondNum = 0, secondCout = 0; for (int i = 0; i < nums.length; i++) { if (firstCout!= 0 && nums[i]== firstNum){ firstCout++; }else if (secondCout!= 0&& nums[i]== secondNum){ secondCout++; }else if (firstCout == 0){ firstCout++; firstNum= nums[i]; }else if (secondCout == 0){ secondCout++; secondNum = nums[i]; } else { firstCout--; secondCout--; } } List<Integer> result = new ArrayList<Integer>(); if (firstCout != 0) { if (checkLegal(nums, firstNum)) { result.add(firstNum); } } if (secondCout != 0) { if (checkLegal(nums, secondNum)) { result.add(secondNum); } } return result; } /** * 检查当前的值是否是真正的大于1/3 * * @param nums * @param secondNum * @return */ private boolean checkLegal(int[] nums, int secondNum) { int count = 0; for (int num : nums) { if (num == secondNum) { count++; } } int target = nums.length / 3; return target < count; }
阅读全文
0 0
- LeetCode 229. Majority Element II
- [LeetCode]229. Majority Element II
- 229. Majority Element II LeetCode
- [leetcode] 229. Majority Element II
- LeetCode 229. Majority Element II
- LeetCode *** 229. Majority Element II
- 【leetcode】229. Majority Element II
- leetcode.229. Majority Element II
- LeetCode - 229. Majority Element II
- [leetcode]229. Majority Element II
- [leetcode]229. Majority Element II
- [leetcode] 229. Majority Element II
- LeetCode 229. Majority Element II
- Leetcode 229. Majority Element II
- [LeetCode]229. Majority Element II
- Leetcode 229. Majority Element II
- LeetCode 229. Majority Element II
- [LeetCode]229. Majority Element II
- 实现自定义数据存入 UserDefaults [iOS Swift] NSKeyedArchive & UserDefaults
- 转载 解密蓝牙mesh系列 | 第四篇【蓝牙mesh架构】【地址(Address)】【消息(Message)】【消息安全】【消息交换】
- 遇见一个内存泄漏。 谁知道解决方案。 复现步骤?
- Jsoup 解析 HTML
- .NET调用JAVA的WebService方法
- LeetCode 229. Majority Element II
- 关于@property中的getter=??的意义
- CentOS查服务器配置、关防火墙、改DNS、mysql配置问题集锦、CentOS编译PHP5.6常见错误
- 软件测试自学入门书籍
- CodeForces
- 前端之js-nodejs(二)
- 个人签到系统的实现
- cocos2d-x之table
- cookie与session的比较