LintCode之主元素
2024-09-05 23:16:42
题目描述:
分析:由题目可知这个数组不为空且该主元素一定存在,我选用HashMap来存储,HashMap的存储结构是”键—值对“,”键“用来存储数组元素,”值“用来存储这个元素出现的次数,然后循环遍历这个HashMap,当发现有一个”键“对应的”值“大于数组元素个数的二分之一时,将这个”键“返回。
代码:
public class Solution {
/*
* @param nums: a list of integers
* @return: find a majority number
*/
public int majorityNumber(List<Integer> nums) {
// write your code here
HashMap<Integer,Integer> h = new HashMap<Integer,Integer>(); int major = 0; for(int i=0; i<nums.size(); i++) {
//如果该元素已存在HashMap之中
if(h.containsKey(nums.get(i))) {
//将元素个数取出,并加1,再存回去
int num = h.get(nums.get(i));
num += 1;
h.put(nums.get(i), num);
}else {
h.put(nums.get(i), 1);
}
} int mid = nums.size()/2; for(int i=0; i<nums.size(); i++) {
if(h.get(nums.get(i)) > mid) {
major = nums.get(i);
break;
}
}
return major;
}
}
最新文章
- 2016福州大学软件工程第二次团队作业——预则立&;&;他山之石成绩统计
- WPF界面布局——各种控件
- 关于C# Winform DataGridView 设置DefaultCellStyle无效的原因与解决方案
- sharepoint2010如何本地化WebPart的Category、WebDisplayName 和 WebDescription 属性
- php实现发送邮件
- linux下vi操作出现E325: ATTENTION的解决方法
- Linux cscope命令
- hdoj-2025a
- lintcode 中等题:kth-largest-element 第k大元素
- hql注意事项一
- 用Filezilla往ubuntu虚拟机上传文件
- Eclipse 经验之谈(一):快速打war包
- 浅谈web前端就业的学习路线
- .net通用权限框架B/S(二) 数据库设计
- bootstrap基础知识点YI
- java读取txt文件内容
- Jquery($第一天)【历史】
- ●BZOJ 2007 NOI 2010 海拔
- 开发环境中Docker的使用
- SQL-55 分页查询employees表,每5行一页,返回第2页的数据