zoukankan      html  css  js  c++  java
  • Majority Element (算法)

    自己写了一种方法,看了别人的解析之后觉得自己的方法好low,不高效也不明智。所以决定记录下来。

    题目要求

    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.

    相关TAG

     Array   Divide and Conquer   Bit Manipulation

    代码

     1 public class Solution {
     2     public int majorityElement(int[] nums) {
     3         //way1:genuis
     4         int major=nums[0], count = 1;
     5         for(int i=1; i<nums.length;i++){
     6             if(count==0){
     7                 count++;
     8                 major=nums[i];
     9             }else if(major==nums[i]){
    10                 count++;
    11             }else count--;
    12         }
    13         return major;
    14         
    15         //way2:most efficient
    16         int len = nums.length;
    17         Arrays.sort(nums);
    18         return nums[len/2];
    19         
    20         //way3:mine
    21         //n个元素的集合,必须出现(n/2+1)次以上 
    22         int len = nums.length;
    23         if(len==1)
    24             return nums[0];
    25         Arrays.sort(nums);
    26         int majorLen = (len/2)+1;
    27         int pointer = 0;
    28         int count = 1;
    29         while(pointer<len-1){
    30             if(count>=majorLen)
    31               break;
    32             else{
    33                 if((pointer+1<len)&&(nums[pointer]==nums[pointer+1]))
    34                     count++;
    35                 else
    36                     count=1;
    37                 pointer++;
    38             }
    39         }
    40         return nums[pointer];
    41     }
    42 }
    __________________________________________________________ shoobie do lang lang ^^
  • 相关阅读:
    试试 cocos creator 3.0 还算可以
    安卓按键辅助(类似按键精灵)
    一次github遭遇
    NSString
    Navicat for SQL Server V10.0.10
    申请博客第一天
    Google Earth的脫機應用-本地模擬瓦片系統
    Vs2010+opencv2.3.1 imread出现异常
    tcpdump工具注意事项
    选择服务器托管机房的注意事项
  • 原文地址:https://www.cnblogs.com/annaivsu/p/5643160.html
Copyright © 2011-2022 走看看