zoukankan      html  css  js  c++  java
  • 主元素majority-number

    给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。

    样例

    给出数组[1,1,1,1,2,2,2],返回 1

    挑战

    要求时间复杂度为O(n),空间复杂度为O(1).

    解题思路:主元素问题还是一个比较经典的题目,相关的算法在这篇博客中讲述的非常清楚http://blog.csdn.net/sophie_wise8/article/details/7672781;

    当然一个很简单的思路就是既然是主元素肯定在数列中出现了至少一半的次数以上,所以就有了如下的巧妙又简单的代码;

     1 class Solution {
     2 public:
     3     /**
     4      * @param nums: A list of integers
     5      * @return: The majority number
     6      */
     7     int majorityNumber(vector<int> nums) {
     8         // write your code here
     9         int x,count=0;
    10         for(int i=0; i<nums.size();i++){
    11             if(count==0){
    12                 x=nums[i];
    13                 count=1;
    14             }else{
    15                 nums[i]==x?count++:count--;
    16             }
    17         }
    18         return x;
    19     }
    20 };
  • 相关阅读:
    String和StringBuilder和StringBuffer
    多态
    组件
    反向代理
    基础知识
    reflection
    v-model 与 v-bind:model
    tomcat端口占用问题
    socket
    简要概括内存机制
  • 原文地址:https://www.cnblogs.com/wangnanabuaa/p/4987278.html
Copyright © 2011-2022 走看看