码迷,mamicode.com
首页 > 其他好文 > 详细

LintCode之主元素

时间:2017-10-28 20:25:16      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:tco   images   solution   元素   shm   ntc   数组   组元   hash   

题目描述:

技术分享

 

分析:由题目可知这个数组不为空且该主元素一定存在,我选用HashMap来存储,HashMap的存储结构是”键—值对“,”键“用来存储数组元素,”值“用来存储这个元素出现的次数,然后循环遍历这个HashMap,当发现有一个”键“对应的”值“大于数组元素个数的二分之一时,将这个”键“返回。

代码:

 1 public class Solution {
 2     /*
 3      * @param nums: a list of integers
 4      * @return: find a  majority number
 5      */
 6     public int majorityNumber(List<Integer> nums) {
 7         // write your code here
 8         HashMap<Integer,Integer> h = new HashMap<Integer,Integer>();
 9         
10         int major = 0;
11         
12         for(int i=0; i<nums.size(); i++) {
13             //如果该元素已存在HashMap之中
14             if(h.containsKey(nums.get(i))) {
15                 //将元素个数取出,并加1,再存回去
16                 int num = h.get(nums.get(i));
17                 num += 1;
18                 h.put(nums.get(i), num);
19             }else {
20                 h.put(nums.get(i), 1);
21             }
22         }
23         
24         int mid = nums.size()/2;
25         
26         for(int i=0; i<nums.size(); i++) {
27             if(h.get(nums.get(i)) > mid) {
28                 major = nums.get(i);
29                 break;
30             }
31         }
32         return major;
33     }
34 }

 

LintCode之主元素

标签:tco   images   solution   元素   shm   ntc   数组   组元   hash   

原文地址:http://www.cnblogs.com/zwxblog/p/7747848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!