当前位置:网站首页>LeetCode169:多数元素
LeetCode169:多数元素
2022-08-03 14:05:00 【Hugh.L】
题目
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
输入:nums = [3,2,3]
输出:3
示例 2:
输入:nums = [2,2,1,1,1,2,2]
输出:2
提示:
n == nums.length
1 <= n <= 5 * 104
-109 <= nums[i] <= 109
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/majority-element
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
分析及实现
对于本题,在评论区中看到两种个人比较能接受的方法,现在此介绍:
一,摩尔投票法
核心思想:
从第一个数开始count=1,遇到相同的就加1,遇到不同的就减1,减到0就重新换个数开始计数,总能找到最多的那个。
代码实现:
class Solution { public: int majorityElement(vector<int>& nums) { //摩尔投票法,先假设第一个数过半数并设cnt=1;遍历后面的数如果相同则cnt+1,不同则减一,当cnt为0时则更换新的数字为候选数(成立前提:有出现次数大于n/2的数存在) int res=0,cnt=0; for(int i=0;i<nums.size();i++){ if(cnt==0) { res=nums[i]; cnt++; } else{ res==nums[i]?cnt++:cnt--; } } return res; } };二,
核心思想:因为一定有众数,且众数个数大于n/2,所以直接排序输出n/2位置的数即可。
class Solution { public: int majorityElement(vector<int>& nums) { sort(nums.begin(),nums.end()); return nums[nums.size()/2]; } };
边栏推荐
- 使用Jetty服务器和Axis2框架技术发布Webservice接口
- System learning Shell regular expressions
- VMware 虚拟机如何连接网络「建议收藏」
- 【二叉树】统计最高分的节点数目
- Leetcode 448. Find All Numbers Disappeared in an Array to Find All Disappeared in an Array of Numbers (simple)
- English语法_介词 - 概述
- atrace和systrace的基本使用方法
- 爱可可AI前沿推介(8.3)
- 你把 浏览器滚动事件 玩明白
- 利用 NFT 释放网站的潜力
猜你喜欢

CVPR 2022 | Predicting Skeletons from Human Meshes, True Physiological Skeletons!

爱可可AI前沿推介(8.3)

将移位距离和假设外推到非二值化问题

网易互娱在秒级监控、服务限流、AIOps落地上的运维升级实践

使用Jetty服务器和Axis2框架技术发布Webservice接口

Nanoprobes 金纳米颗粒标记试剂丨1.4 nm Nanogold 标记试剂

中国手机品牌争论谁是国内第一,而它已成为中国手机在海外的代表

设计思维 | 详看设计工作坊Workshop的11个关键技巧

基于ModelArts的动漫头像自动生成丨【华为云至简致远】

MSF编码与upx加壳过杀软
随机推荐
动作条的多项复选
js \n\r 换行失败 :【white-space: pre-line;】${} Template Literals
DAY19(DAY20、DAY21拓展):SQL 注入
The embassy in Iceland reminds Chinese citizens in Iceland to strengthen safety protection
你把 vite打包 玩明白
微服务的快速开始(nacos)最全快速配置图解
c语言结构体知识总结
The Chinese Embassy in Nigeria issued an emergency safety warning for the area near Zuma Rock in Abuja
设计思维 | 详看设计工作坊Workshop的11个关键技巧
Postman插件下载
关于 vditor 可否同步飞书文档问题
厨卫电器行业数字化集采管理系统:优化产业供应结构,实现采购业务流程集中管控
投资75亿卢比!印度宣布建首座存储芯片组装和封测工厂,将于12月量产
中国菜刀原理与实践
英文邮件总结
用1000行代码统计西安新房价格后,我有一个惊人的发现……
MySQL【视图】
MSF编码与upx加壳过杀软
十大免费代理ip软件_国内静态ip代理软件
VMware 虚拟机如何连接网络「建议收藏」