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;

    }
    };




  • 相关阅读:
    kafka参数设置
    安装kafka多节点
    zookeeper集群搭建
    ubuntu安装spark
    ubuntu安装Scala
    elasticsearch添加访问密码
    springcloud整合分布式事务LCN
    springboot分布式事务
    K近邻(KNN)
    最大期望算法(EM算法)
  • 原文地址:https://www.cnblogs.com/baiyuhong/p/5100640.html
Copyright © 2011-2022 走看看