Easy-题目11:169. Majority Element

转载 2016年05月30日 19:54:23

题目原文:
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.
分析:
使用repeatTimes变量记录主元素重复次数,每次遇到重复的就+1,不重复的就-1.减到0时就更新当前主元素。(利用主元素出现次数比其他数出现之和多这一性质。)
源码:(language:c)

int majorityElement(int* nums, int numsSize) {
    int i,mainElement,repeatTimes = 0;  

    //每次若不相同则减小这个计数,若相同则增加  
    for(i = 0;i<numsSize;i++) {  
        if(repeatTimes == 0){  
            mainElement = nums[i];  
            repeatTimes = 1;  
        }  
        else{  
            if(mainElement == nums[i])  
                repeatTimes++;  
            else  
                repeatTimes--;  
        }  
    }  
    return mainElement;  
}

成绩:
8ms,beats 36.16%.众数:8ms 63.84%
Cmershen的碎碎念:
此题好像是考研408模拟题中的一道题,听说也经常在面试中出现。一开始我想到的是用HashMap记录每个元素出现的次数,最大的就是主元素。但这样的空间复杂度就是O(n),而上述算法有更优的O(1)空间复杂度。

169. Majority Element [easy] (Python)

题目链接https://leetcode.com/problems/majority-element/题目原文 Given an array of size n, find the majorit...

Leetcode 169. Majority Element[easy]

GRE回归,响应老师号召,做分治题目。题目: Given an array of size n, find the majority element. The majority element is...

【LeetCode-面试算法经典-Java实现】【169-Majority Element(主元素)】

【169-Majority Element(主元素)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-Chao】原...

LeetCode 169. Majority Element

课上系统的学习了算法分治的思想,于是想上leetcode找一找关于分治的题目做一做。             一开始选的是 312 Burst balloon, 难度为hard。想了一种贪心的做法,...
  • isNoel
  • isNoel
  • 2016年09月11日 23:47
  • 162

【LeetCode】No.169 Majority Element

【原题】 Given an array of size n, find the majority element. The majority element is the element tha...

Leetcode #169 Majority Element

Leetcode #169 Majority Element的三种做法
  • mu_jun
  • mu_jun
  • 2016年11月14日 19:35
  • 82

leetcode刷题之旅——169. Majority Element

本周学习了分治法,所以准备在leetcode中挑选几道分治算法的题目来写。然而分治算法题目当中只有一道是easy,其他都是middle或者hard的题目,让我很慌。所以先把这唯一一道easy的题目写出...

【Leetcode】169. Majority Element

方法一:Hash表 思路: (1)使用一个hash表,键用来存放数组的元素,键对应的值存放元素出现的次数。 (2)遍历整个数组,查找它在hash表中是否出现,如果出现将出现次数加1,如果没有出现,将...

169. Majority Element 破解思路

Given an array of size n, find the majority element. The majority element is the element that appear...

[leetcode]: 169. Majority Element

1.题目描述Given an array of size n, find the majority element. The majority element is the element that ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Easy-题目11:169. Majority Element
举报原因:
原因补充:

(最多只允许输入30个字)