public int majorityElement(int[] nums) {
Arrays.sort(nums);
int mid = nums.length / 2;
return nums[mid];
}
}
var majorityElement = function(nums) {
nums.sort((a,b) => a-b);
return nums[Math.floor(nums.length/2)];
};
### **方法二:哈希表**
遍历哈希表操作的四种方法:[https://blog.youkuaiyun.com/kyi\_zhu123/article/details/52769469]( )
我们使用哈希映射(HashMap)来存储每个元素以及出现的次数。对于哈希映射中的每个键值对,键表示一个元素,值表示该元素出现的次数。
我们用一个循环遍历数组 nums 并将数组中的每个元素加入哈希映射中。在这之后,我们遍历哈希映射中的所有键值对,返回值最大的键。我们同样也可以在遍历数组 nums 时候使用打擂台的方法,维护最大的值,这样省去了最后对哈希映射的遍历。
class Solution {
public int majorityElement(int[] nums) {
Map<Integer, Integer> counts = countNums(nums);
Map.Entry<Integer, Integer> major = null;
for(Map.Entry<Integer, Integer> entry : counts.entrySet()){
if(major == null || entry.getValue() > major.getValue()){
major = entry;
}
}
return major.getKey();
}
private Map<Integer, Integer> countNums(int[] nums){
Map<Integer, Integer> counts = new HashMap<Integer, Integer>();
for(int num : nums){
if(!counts.containsKey(num)){
counts.put(num, 1);
}else{
counts.put(num, counts.get(num)+1);
}
}
return counts;
}
}
/**
-
@param {number[]} nums
-
@return {number}
*/
var majorityElement = function(nums) {
let map = new Map()
for(let i = 0; i < nums.length; i++){
if(map.has(nums[i])){
map.set(nums[i], map.get(nums[i])+1)
}else{
map.set(nums[i], 1)
}
}
for(let item of map.entries()){
if(item[1]>nums.length/2){
return item[0]
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.youkuaiyun.com/topics/618191877)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!