资讯专栏INFORMATION COLUMN

面试题39:数组中出现次数超过一半的数字

Eminjannn / 1388人阅读

摘要:面试题数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,找出这个数字。

面试题39:数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,找出这个数字。

// 摩尔投票法class Solution {public:    int majorityElement(vector& nums) {        int x,votes;        for(int num:nums)        {            if(votes==0)                x = num;            votes += num==x? 1:-1;	// votes += (num==x? 1:-1)        }        return x;    }};

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123343.html

相关文章

  • 剑指offer算法(PHP版)

    摘要:二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。解法有两种,一种是递归法,一种是迭代法但是递归法计算的时间复杂度是以的指数的方式递增的,如果面试中千万不要用递归法,一定要用迭代法。 二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和...

    big_cat 评论0 收藏0
  • 【刷算法】数组出现次数超过一半数字

    摘要:题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。如果不存在则输出。分析像这样的数组,如果每次去掉两个不同的数字,那么到最后会剩下,就是数组中超过一半的数字。可以使用代码来模拟这个过程即可。 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组...

    Lin_R 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<