Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
一个数列,有一个数只出现1次,其他所有数都出现3次,找出出现1次的数
思路见9年前C++版本的记录->http://www.cppblog.com/Uriel/articles/205406.html

Python版 (注意处理负数的情况,看了Discussion才意识到)

 1 #137
 2 #Runtime: 83 ms (Beats 39.2%)
 3 #Memory: 14.8 MB (Beats 89.66%)
 4 
 5 class Solution(object):
 6     def singleNumber(self, nums):
 7         """
 8         :type nums: List[int]
 9         :rtype: int
10         """
11         ans = 0
12         for i in range(32):
13             cnt = 0
14             for m in nums:
15                 t = (m >> i) & 1
16                 cnt += t
17             cnt %= 3
18             if cnt and i == 31:
19                 ans -= 1 << 31
20             else:
21                 ans |= cnt << i
22         return ans



只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理