The simple thought is using hash table to count. However, there is another tricky way. Because the number of majority is bigger than n/2, so if we add 1 when see it and subtract 1 when not see it, the final value should be larger than 0.
Solution:
# T:O(n) S:O(1) class Solution: # @param num, a list of integers # @return an integer def majorityElement(self, num): idx, cnt = 0, 1 for i in xrange(1, len(num)): if num[idx] == num[i]: cnt += 1 else: cnt -= 1 if cnt == 0: idx = i cnt = 1 return num[idx]Run Time: 72 ms
No comments:
Post a Comment