力扣(LeetCode)求众数 个人题解
2024-09-01 16:53:54
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋
的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
简单的思路是用map记录数字出现的次数,最后找到出现最多次数的那个数字,这个是比较简单的思路,这里就不放代码了
算法的思路是使用 “摩尔投票法”,一种算法可以在遍历数组的过程中找到出现次数大于数组长度一半且唯一的数字。也就是本题中的众数。
摩尔投票法的介绍:https://www.jianshu.com/p/c19bb428f57a
代码如下:
class Solution {
public int majorityElement(int[] nums) {
int count = 0;
int ret = nums[0];
for (int n : nums) {
if (count == 0)
ret = n;
if (n == ret)
count++;
else {
count--;
}
}
return ret;
}
}
最新文章
- java反射小例子
- Android 四大组件之四(ContentProvider)
- java aes_cbc_256 加密解密
- Eclipse 安装插件后不显示的解决办法
- youtube视频批量下载
- Velocity(8)——引入指令和#Stop指令
- Web开发新时代
- deep learning
- 身份证号码自动生成程序(Python)
- 头文件为什么要加#ifndef #define #endif
- @media用法。
- oracle查看所有表的数据量
- MySQL Troubleshoting:Waiting on query cache mutex 腾讯数据库工程师:幕南风
- MYSQL-- binlog事件详解
- 桂电在线-php-提取菜单到配置文件2
- flexpaper 与js 交互
- swift3.0基础语法(2)
- Simple tutorial for using TensorFlow to compute a linear regression
- 横线和文字一排,文字居中显示vertical-align: middle;
- StanfordPOSTagger的用法
热门文章
- 不安分的管家——Jenkins
- 这可能就是你苦苦寻找免费、高颜值、功能强大的 Markdown 编辑器(共5款)
- MyCat教程二:mysql主从复制实现
- 简单理解TCP通信的三次握手
- lcx 内网转发
- Mysql高手系列 - 第27篇:mysql如何确保数据不丢失的?我们借鉴这种设计思想实现热点账户高并发设计及跨库转账问题
- Python之路(第四十六篇)多种方法实现python线程池(threadpool模块\multiprocessing.dummy模块\concurrent.futures模块)
- LeetCode 5024 除数博弈 --(简单博弈论)
- 彻底解决 Mechanism level: Failed to find any Kerberos tgt
- Core3.0的 安装与坑坑坑!!!