Leetcode题库169.多数元素(c实现)
生活随笔
收集整理的這篇文章主要介紹了
Leetcode题库169.多数元素(c实现)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 思路
- 代碼
思路
設多數(shù)元素為x,數(shù)組中x的數(shù)量 > n/2
設置一個ret,保存當前活著的元素
設置一個計數(shù)器num,記錄當前ret的數(shù)量
設置ret為數(shù)組第1個元素
num為1
遍歷數(shù)組
若num[i]的值=ret,則num+1(相同元素則疊加)
若num[i]的值!=ret,否則num-1(不同元素則抵消)
當num=0時,則重置num和ret(num為0說明之前最多的元素已經(jīng)被抵消完了)
因為x的數(shù)量 > n/2,所以最后必定有x未被抵消,ret中保存的就是x
代碼
int majorityElement(int* nums, int numsSize){int num = 1,ret = nums[0];for(int i=1;i<numsSize;i++){num += (ret==nums[i])-(ret!=nums[i]);if(num==0) {num = 1;ret = nums[i];}}return ret; }總結(jié)
以上是生活随笔為你收集整理的Leetcode题库169.多数元素(c实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8086_显存相关知识
- 下一篇: 8086汇编_除法指令