LeetCode 169. Majority Element
2018-01-20 15:16
531 查看
题目
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element always exist in the array.
找出数量超过半数的元素。前提:输入的数组非空
思考
排序后中位数即所求,因为结果元素数量超过⌊ n/2 ⌋。使用两两不同的数抵消的方法,因为结果元素数量超过⌊ n/2 ⌋,所以抵消之后剩下的数肯定就是结果。
答案
c++1.
复杂度取决于sort。
class Solution { public: int majorityElement(vector<int>& nums) { vector<int> temp(nums); sort(temp.begin(), temp.end()); return temp[nums.size() / 2]; } };
2.
复杂度为O(n)。
class Solution { public: int majorityElement(vector<int>& nums) { int current = nums[0], count = 1; for (int i = 1; i < nums.size(); i++) { if (count == 0) { current = nums[i]; count = 1; } else { if (nums[i] == current) count++; else count--; } } return current; } };
相关文章推荐
- 【leetcode】169. Majority Element
- Majority Element [LeetCode 169]
- LeetCode 169. Majority Element
- [LeetCode#169]Majority Element
- LeetCode 169. Majority Element
- 【LeetCode】169 - Majority Element
- leetcode-169. Majority Element
- Leetcode169: Majority Element
- leetcode 169 Majority Element C++
- 2018.03.07 leetcode 打卡 #169. Majority Element
- LeetCode 169. Majority Element
- [leetcode] 169. Majority Element
- Leetcode题解 169. Majority Element
- leetcode【169 Majority Element】【Python】
- LeetCode 169. Majority Element解题方法
- LeetCode - 169/229 - Majority Element
- Leetcode ☞ 169. Majority Element
- leetcode:169 Majority Element-每日编程第十一题
- Leetcode-169. Majority Element
- LeetCode@Array_169_Majority_Element