lintcode 主元素解決方法
阿新 • • 發佈:2017-08-10
一個 二分 時間復雜度 第一個 majority 一個數 write 整型 for
原題
給定一個整型數組,找出主元素,它在數組中的出現次數嚴格大於數組元素個數的二分之一。
樣例
給出數組[1,1,1,1,2,2,2],返回 1
主要思路
在不考慮時間復雜度的情況下,用for循環從第一個數開始與後面的數依次比較最後返回結果。代碼如下:
class Solution { public: /** * @param nums: A list of integers * @return: The majority number */ int majorityNumber(vector<int> nums) {// write your code here int cnt = 0; int result = 0,i; for (i = 0 ; i < nums.size() ; i++) { if (cnt == 0) { result = nums[i] ; cnt++ ; } else { if (result != nums[i]) { cnt-- ; } else { cnt++ ; } } } return result ; } };
lintcode 主元素解決方法