LeetCode实战:求众数
题目英文
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
题目中文
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
算法实现
第一种:利用排序的方式
public class Solution {public int MajorityElement(int[] nums) {nums = nums.OrderBy(a => a).ToArray();return nums[nums.Length / 2];}
}
第二种:利用 Boyer-Moore 投票算法
public class Solution {public int MajorityElement(int[] nums) {//寻找数组中超过一半的数字,这意味着数组中其他数字出现次数的总和都是比不上这个数字出现的次数。//即如果把 该众数记为 +1 ,把其他数记为 −1 ,将它们全部加起来,和是大于 0 的。int candidate = nums[0];int count = 1;for (int i = 1; i < nums.Length; i++){if (count == 0)candidate = nums[i];count += (nums[i] == candidate) ? 1 : -1;}return candidate; }
}
实验结果
第一种方式:
- 状态:通过
- 44 / 44 个通过测试用例
- 执行用时:192 ms
第二种方式:
- 状态:通过
- 44 / 44 个通过测试用例
- 执行用时:148 ms
相关图文:
- LeetCode实战:删除链表的倒数第N个节点
- LeetCode实战:合并两个有序链表
- LeetCode实战:两两交换链表中的节点
- LeetCode实战:旋转链表
- LeetCode实战:相同的树
- LeetCode实战:对称二叉树
- LeetCode实战:二叉树的最大深度
- LeetCode实战:搜索二维矩阵
- LeetCode实战:将有序数组转换为二叉搜索树
- 资料分享:数学建模资料分享 – 图论部分
- 资料分享:数学建模资料分享 – 神经网络部分
- 如何利用 C# 实现 K 最邻近算法?
- 如何利用 C# 实现 K-D Tree 结构?
- 如何利用 C# + KDTree 实现 K 最邻近算法?
- 如何利用 C# 对神经网络模型进行抽象?
- 如何利用 C# 实现神经网络的感知器模型?
- 如何利用 C# 实现 Delta 学习规则?
- 如何利用 C# 实现 误差反向传播 学习规则?
- 如何利用 C# 爬取带 Token 验证的网站数据?
- 如何利用 C# 向 Access 数据库插入大量数据?
- 如何利用 C# + Python 破解猫眼电影的反爬虫机制?
LeetCode实战:求众数相关推荐
- LeetCode 169. 求众数(摩尔投票)
文章目录 1. 题目信息 2. 解题思路 3. 代码 3.1 排序 3.2 map计数 3.3 摩尔投票 1. 题目信息 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ ...
- Leetcode:169. 求众数
题目链接 求众数 题目描述 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: ...
- java求众数_Java实现 LeetCode 229 求众数 II(二)
229. 求众数 II 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素. 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1). 示例 1: 输入: [3,2, ...
- leetcode.169 求众数
给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. // 示例1 输入: [3,2,3] 输出: ...
- Leetcode 169. 求众数 解题思路及C++实现
解题思路: 因为int型数值只有32位,使用位运算的方法来解这道题时,就是要确定这个众数,在32位的位置上分别是0还是1. 由题意,因为众数的个数超过n/2,所以遍历数组nums后,如果某一位置上1的 ...
- LeetCode 169.求众数
题目描述: 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3] ...
- LeetCode 229. 求众数 II(摩尔投票)
1. 题目 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素. 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1). 示例 1: 输入: [3,2,3] 输出: ...
- [leetcode]229. 求众数 II
解题思路:题目要求空间复杂度为O(1) 大于1/3的数不会超过2个,利用Boyer-Moore 投票算法找到数量最多的两个数,再检查下这俩个数的数量有没有超过1/3 class Solution {p ...
- LeetCode实战:逆波兰表达式求值
题目英文 Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are ...
最新文章
- 2021年大数据ELK(十六):Elasticsearch SQL(职位查询案例)
- 百利而无一害的技术——Linux
- tensorflow与keras关系
- 【leetcode 简单】第三十一题 买卖股票的最佳时机
- 【BZOJ-3681】Arietta 网络流 + 线段树合并
- Python基础第六天——函数的使用、函数的参数、函数的返回值、函数的嵌套、命名空间、作用域、函数对象...
- Java中同时输入字符串和int类型出错的处理方式
- Python 绘图问题:Matplotlib中plt.rcParams[]使用方法 rcsetup.py matplotlibrc
- 【网易云信 x 齿轮易创】互联网时代,如何在教育行业抢占C位
- WIF基本原理(2)基于声明的标识模型
- 现在开始(译) 明确的知道你想要什麽是关键 每次 只做一件事的习惯 成功的人是因为屡次尝试经历失败保持激情 动手一试...
- 关于javascript的原型和原型链,看我就够了(二)
- python转为字节_将字节转换为python中的位
- php 实现 model层,Thinkhphp5控制器调用的Model层的方法总结
- 第三季度营收不及预期 拼多多收盘跌超15%
- 计算机中 位数越多 能表示的状态,第2章 基本数据的表示与处理.ppt
- 华为p10应用市场无法连接服务器,华为p10如何连接电脑及没反应怎么解决【图文教程】...
- 51单片机对GPS卫星信号的解码并通过LCD1602或12864显示
- 实时渲染学习(六)延迟渲染(Deferred Rendering)
- java myqq ui_GitHub - ANDRYHU2020/myqq: Java版SWing“高”仿QQ即时通聊天系统
热门文章
- python中执行linux命令(调用linux命令)_Python调用Linux bash命令
- 数据库管理系统的组成和结构
- 学完javase和mysql_Java基础学完接下来应该学什么呢?
- linux传文件到xp,Linux与Windows XP之间使用FTP互传文件
- Spring Cloud入门教程 - Zuul实现API网关和请求过滤
- Docker编排工具Fig介绍
- 软件定义网络 对我们有多重要?
- python依赖包exe文件安装问题
- 引用头文件#include queue出错
- TCP/IP详解学习笔记(9)-TCP协议概述