229. Majority Element II
来源:互联网 发布:淘宝皇冠和天猫哪个好? 编辑:程序博客网 时间:2024/06/08 02:12
229. Majority Element II
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.题目大意:给定一个大小为n的integer数组,找出出现[n/3]次的所有数。
思路:见代码
代码:
package Array; import java.util.ArrayList; import java.util.List; /**- @Author OovEver- @Date 2017/11/28 10:10 */ public class Solution {public List<Integer> majorityElement(int[] nums) { if (nums == null || nums.length == 0) return new ArrayList<Integer>(); List<Integer> result = new ArrayList<Integer>(); // 由于只有出现次数要大于[n/3],所以只可能有2个数大于[n/3],所以定义两个变量member1,member2用于定义可能出现的大于[n/3]的数,count1,count2分别记录member1和member2的数 int number1 = nums[0], number2 = nums[0], count1 = 0, count2 = 0, len = nums.length; for (int i = 0; i < len; i++) { if (nums[i] == number1) count1++; else if (nums[i] == number2) count2++; else if (count1 == 0) { number1 = nums[i]; count1 = 1; } else if (count2 == 0) { number2 = nums[i]; count2 = 1; } else { count1--; count2--; } } count1 = 0; count2 = 0; for (int i = 0; i < len; i++) { if (nums[i] == number1) count1++; else if (nums[i] == number2) count2++; } if (count1 > len / 3) result.add(number1); if (count2 > len / 3) result.add(number2); return result; }}
阅读全文
0 0
- 229.Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- 229. Majority Element II
- Zigbee设备入网流程分析(关联方式)
- java几种线程调度
- 矩阵论与矩阵分析——学习资料(更新..........)
- Xamarin.Android 引导页 启动页
- Ceph 学习——CRUSH算法及源码分析(一)
- 229. Majority Element II
- 【自己的整理】【jQuery插件】 使用canvas创建折线图
- JS判断字符串是否是金钱
- Weblogic + apache 实现负载均衡
- 11月28日云栖精选夜读:阿里巴巴正式开源其自研容器技术Pouch
- EJTAG调试总计
- Android Studio项目上传到GitHub
- 开源系统ThinkSNS+ APP端V1.2.8更新播报
- 56. Merge Intervals