首页 > 其他 > 详细

Moore’s Voting Algorithm

时间:2016-01-05 00:08:15      阅读:214      评论:0      收藏:0      [点我收藏+]

这个算法是用来找出在数列中出现次数过半的数。

他采用的基本思想是每次都从数组中找出不同的一对数,然后删除,最后留下的就是我们要找的数。

例子:http://www.cs.utexas.edu/~moore/best-ideas/mjrty/example.html


169. Majority Element

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.


class Solution {
  public:
    int majorityElement(vector<int>& nums) {
      int count=0;
      int num;
       for(int i=0;i<nums.size();i++)
      {
        if(count==0)
          {
            num=nums[i];
             count++;
          }
       else
          {
            num==nums[i]?count++:count--;
            if(count>(nums.size()/2))
          {
        return nums[i];
      }
    }
    }
  return num;

}
};




Moore’s Voting Algorithm

原文:http://www.cnblogs.com/baiyuhong/p/5100640.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!