【刷leetcode,拿Offer-037】169. Majority Element

题目链接:https://leetcode.com/problems/majority-element/

题面:

169. Majority Element

Easy

1714152FavoriteShare

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.

Example 1:

Input: [3,2,3]
Output: 3

Example 2:

Input: [2,2,1,1,1,2,2]
Output: 2

题意:一个数组中有一个数出现超过数组长度的一半次,求出该数。

解题:

这题的解法其实很巧妙,用一个变量保存结果,用一个变量计数。当当前数和保存的数相同时,计数+1,不相同则减一,当为0时,则更换为新的数。充分利用了超过一半,可以无法被其他所有元素抵消的性质。

代码:

class Solution {
public:
    int majorityElement(vector& nums) {
        int res=nums[0],cnt=1;
        for(int i=1;i

 

你可能感兴趣的:(LeetCode,Offer,面试)