zoukankan      html  css  js  c++  java
  • 169. Majority Element

    原文题目:

    169. Majority Element

    读题:

    这个是一道经典算法题,可以用摩尔投票算法(Moore voting algorithm),前提是一定有一个元素的个数超过总元素个数的一半。

    比如对于序列[1,1,1,1,1,1,2,2,3,3,4],此时设置一个count,由于前6个都相等为1,count的值累加依次是1,2,3,4,5,6,从第七个数开始就不等于1了,此时count开始减一,值为5,4,3,2,1,由于减的过程count的值不为0,因此一直减,遍历完后count还是不为0,表明第一个值就是所要寻找的主元素。

    class Solution 
    {
    public:
    	int majorityElement(vector<int>& nums) 
    	{
    		int curIdx = 0;
    		int count = 1;
    		int i= 1;
    		for(i = 1;i< nums.size();++i)
    		{
    			nums[i] == nums[curIdx]? ++count : --count;
    			if(!count)
    			{
    				curIdx = i;
    				count = 1;
    			}
    		}
    		return nums[curIdx];
    	}
    };
    int main()
    {
    	Solution s;
    	vector <int> nums;
    	int result;
    	int i = 0;
    	/*for(i = 0;i < 6;i++)
    	{
    		nums.push_back(5);
    	}*/
    	nums.push_back(7);
    	nums.push_back(8);
    	nums.push_back(5);
    	nums.push_back(5);
    	nums.push_back(5);
    
    	
    	result = s.majorityElement(nums);
    	cout << result<<endl;
    }
    

      

  • 相关阅读:
    WinHex简介
    CTF中图片隐藏文件分离方法
    隐写术的相关解法
    JPEG文件格式
    PNG文件结构
    网络安全实验室—基础关
    实验吧—密码学(1)
    YIT-CTF—隐写术
    YIT-CTF—Web
    YIT-CTF—社工类
  • 原文地址:https://www.cnblogs.com/xqn2017/p/8006807.html
Copyright © 2011-2022 走看看