zoukankan      html  css  js  c++  java
  • 169. Majority Element Java Solutin

    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.

    Credits:
    Special thanks to @ts for adding this problem and creating all test cases.

    Subscribe to see which companies asked this question

     
     1 public class Solution {
     2     public int majorityElement(int[] nums) {
     3         if(nums == null) return 0;
     4         Map<Integer,Integer> hm = new HashMap<Integer ,Integer>();
     5         for(int i= 0;i< nums.length;i++){
     6             if(hm.containsKey(nums[i])) hm.put(nums[i],hm.get(nums[i]) + 1);
     7             else{
     8                 hm.put(nums[i],1);
     9             }
    10         }
    11         int halflen = nums.length/2;
    12         int res = 0;
    13         for(int key : hm.keySet()){
    14             if(hm.get(key) > halflen){
    15                 res = key;
    16                 break;
    17             }
    18         }
    19         return res;
    20     }
    21 }

    方法2: 排序后,取中间的元素就是所求值。

    方法3:转自:http://blog.csdn.net/feliciafay/article/details/45006661

    从头到尾扫描一遍数组,记录当前的majority element的count。

     1 // 259ms
     2 public class Solution {
     3     public int majorityElement(int[] num) {
     4         if(num.length < 3) return num[0];
     5         int majority = num[0];
     6         int count = 1;
     7         //1,1,1,1,2,1,3,1,2,2,2,2,2,2,
     8         for (int i = 1; i < num.length; ++i) {
     9             if (count == 0) {
    10                 majority = num[i];
    11                 ++count;
    12             } else if (num[i] == majority)  {
    13                 ++count;
    14             } else {
    15                 --count;
    16             }
    17         }
    18         return majority;
    19     }
    20 }
  • 相关阅读:
    MVC4 Action 两种异步方式
    MVC4 Model ValueProvider
    MVC4 Model ControllerDescriptor
    MVC4 基于 Unity Ioc 框架的 ControllerFactory
    MVC4 路由解析 同名Controller的解决方案
    ASP.NET mvc4 Controllder 同步还是异步
    Asp.net MVC 自定义路由
    Xml读取
    Leetcode 1029. 可被 5 整除的二进制前缀
    Leetcode 1014. 在 D 天内送达包裹的能力
  • 原文地址:https://www.cnblogs.com/guoguolan/p/5395968.html
Copyright © 2011-2022 走看看