判断数组中超过一半的数

  • 分析
    常见面试题,排序的话复杂度太高,可以通过一个计数器nTimes来辅助。
  • 代码
int findHalfMaxValue(vector<int>& numb){
    
    
        int length=numb.size();
        int nTimes,i,value;
        nTimes = 0;
        for(i=0;i<length;i++){
    
    
            if(nTimes==0){
    
    
                value=numb[i];
                nTimes++;
            }else{
    
    
                if(numb[i]==value)
                    nTimes++;
                else
                    nTimes--;
            }
        }
        return value;
    }

Guess you like

Origin blog.csdn.net/xiaoan08133192/article/details/120270292