1. 程式人生 > >lintcode 主元素解決方法

lintcode 主元素解決方法

一個 二分 時間復雜度 第一個 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 主元素解決方法