首页 > 学院 > 开发设计 > 正文

169. Majority Element

2019-11-08 02:38:01
字体:
来源:转载
供稿:网友

题目

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.

Credits: Special thanks to @ts for adding this PRoblem and creating all test cases.

Subscribe to see which companies asked this question.

Show Tags Show Similar Problems


思路

思路是vector减去两个不同的数字后那个超过一半的数字还是不变的 ,通过不断去除两个不同的数来缩小范围


代码

class Solution {public: int majorityElement(vector<int>& nums) { int maxTimeNum; size_t maxNumSum = 0; size_t length = nums.size(); for(int i=0;i<length;i++) { //当前无最大次数数字记录 if(maxNumSum == 0) { maxTimeNum = nums[i]; maxNumSum++; continue; } //当前数字与最大数字相同 if(maxTimeNum == nums[i]) { maxNumSum++; continue; } //不同则减去一个计数 maxNumSum--; } return maxTimeNum; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表