原题
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋
的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例1:
输入: [3,2,3] 输出: 3
示例2:
输入: [2,2,1,1,1,2,2] 输出: 2
解法
思想
哈希表记录每个元素的出现次数
代码
class Solution {
public int majorityElement(int[] nums) {
int length = nums.length;
Map<Integer,Integer> map = new HashMap<>();
for(int i:nums){
int newer = map.getOrDefault(i,0)+1;
if(newer>length/2) return i;
map.put(i,newer);
}
return 0;
}
}
原创文章,作者:彭晨涛,如若转载,请注明出处:https://www.codetool.top/article/leetcode169-%e5%a4%9a%e6%95%b0%e5%85%83%e7%b4%a0/
相关推荐
-
leetcode403-青蛙过河
原题 一只青蛙想要过河。 假定河流被等分为 x 个单元格,并且在每一个单元格内都有可能放有一石子(也有可能没有)。 青蛙可以跳上石头,但是不可以跳入水中。 给定石子的位置列表(用单...
-
leetcode155-最小栈
原题 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() ...
-
海量数据算法-BitMap介绍和实现
作为一个有素质的程序员,在面试中(不是) 难免会遇到海量数据相关的问题,之前有注意过java.util下面有一个BitSet数据结构,但不是很明白是做什么用的。今天就来研究一下它背...
-
leetcode117-填充每个节点的下一个右侧节点指针II
原题 给定一个二叉树 struct Node { int val; Node *left; Node *ri...
-
leetcode173-二叉搜索树迭代器
原题 实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 示例: BSTIterator iterator...
-
leetcode622-设计循环队列
设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是...
-
leetcode779-第K个语法符号
原题 在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。 给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始) 例子: 输入: N...
-
程序员面试金典17.16-按摩师
原题(来源Leetcode) 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,...
-
剑指offer17-打印从1到最大的n位数
原题(来源Leetcode) 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: ...
-
leetcode343-整数拆分
原题 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1...