首页 > 代码库 > Leetcode problem-169 Majority Element 题解

Leetcode problem-169 Majority Element 题解

Leetcode Problem-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.

题解:题目已经肯定主元素一定存在,且出现次数大于n/2,数组又假定已经非空。采用分治法,每找到两个不同的元素,则成对删除,最终剩下的一定就是所求的。

class Solution {

public:

    int majorityElement(vector<int>& nums) {

        int most = 0;

        int cnt = 0;

        for(int i=0;i<nums.size();i++)

        {

            if(cnt==0)

            {

                most=nums[i];

                cnt++;

            }

            else

            {

                if(nums[i]==most)

                {

                    cnt++;

                }

                else

                {

                    cnt--;

                }

            }

           

        }

        return most;

    }

};

Leetcode problem-169 Majority Element 题解