[Leetcode 229, Medium] Majority Element II
来源:互联网 发布:大疆一键全景软件下载 编辑:程序博客网 时间:2024/04/30 12:46
Problem:
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.
Analysis:
Use Boyer-Moore voting algorithm (https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_majority_vote_algorithm ) , and then test the candidate elements are eligible for majority elements.
Solutions:
C++:
vector<int> majorityElement(vector<int>& nums) { vector<int> results; if(nums.empty()) return results; if(nums.size() == 1) { results.push_back(nums[0]); return results; } int first = 0, second = 0, f_count = 0, s_count = 0; for(int i = 0; i < nums.size(); ++i) { if(f_count == 0) { first = nums[i]; ++f_count; } else if(nums[i] == first) { ++f_count; }else if(s_count == 0) { second = nums[i]; ++s_count; } else if(nums[i] == second) { ++s_count; } else { --f_count; --s_count; } } f_count = 0; s_count = 0; for(int i = 0; i < nums.size(); ++i) { if(nums[i] == first) ++f_count; else if(nums[i] == second) ++s_count; } if(f_count > nums.size() / 3) results.push_back(first); if(s_count > nums.size() / 3) results.push_back(second); }Java:
Python:
0 0
- [Leetcode 229, Medium] Majority Element II
- leetcode 229[medium]--- Majority Element II
- Leetcode 229. Majority Element II (Medium) (cpp)
- leetcode#229 Majority Element II
- Leetcode 229 Majority Element II
- leetcode 229: Majority Element II
- Majority Element II (leetcode 229)
- [leetcode 229]Majority Element II
- LeetCode(229)Majority Element II
- [LeetCode 229] Majority element II
- leetcode 229:Majority Element II
- Majority Element II leetcode 229
- 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] Majority Element II
- 把二元查找树转变成排序的双向链表
- 线程(1)----线程与进程
- 文件
- 线程(1)----线程停止
- 【西祠日志】【08】周五周五,一周又结束,有点困惑未了
- [Leetcode 229, Medium] Majority Element II
- 如何搭建Struts2项目
- Android开发笔记--WIFI状态判断
- Leetcode 7 Reverse Integer
- N. Find a way
- 数据挖掘工程师笔试及答案整理
- HDU空心三角形
- Win7/Win8下双击运行jar程序的方法
- 1212 Big Number