zoukankan      html  css  js  c++  java
  • Moore’s Voting Algorithm

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

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

    例子: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;

    }
    };




  • 相关阅读:
    c#下实现ping操作
    DevExpress 经典常用功能代码收集
    WPF – 使用触发器
    XtraGrid使用方法
    [读书笔记]STL源码剖析
    [微软面试100题]6170
    [读书笔记]Thinking in C++
    [转][算法]google page rank算法
    [微软面试100题]7180
    [转][算法]链接分析算法之:HITS算法
  • 原文地址:https://www.cnblogs.com/baiyuhong/p/5100640.html
Copyright © 2011-2022 走看看