鎬濊礬涓錛氬紑涓猟ict瀛樻瘡涓暟鍑虹幇鍑犳錛屽啀鎵竴閬嶆壘鍑篸uplicate鍜宮issing
1 #645
2 #Runtime: 447 ms
3 #Memory Usage: 15.5 MB
4
5 class Solution(object):
6 def findErrorNums(self, nums):
7 """
8 :type nums: List[int]
9 :rtype: List[int]
10 """
11 dict_num = {}
12 ans = [0, 0]
13 for i in nums:
14 if i not in dict_num:
15 dict_num[i] = 1
16 else:
17 dict_num[i] += 1
18 for i in range(1, len(nums) + 1):
19 if i not in dict_num:
20 ans[1] = i
21 elif dict_num[i] > 1:
22 ans[0] = i
23 return ans
鎬濊礬浜岋紙鐪媠olution寰楀埌鐨勫惎鍙戯紝涓嶄嬌鐢ㄥ叾浠杁ict絳夊浣欏瓨鍌級(jí)錛氱涓閬嶆壂鐨勬椂鍊欏皢浣嶄簬nums[abs(nums[i]) - 1]鐨勬暟*-1錛屽彂鐜版煇涓暟宸茬粡鏄礋鐨勮瘽璇存槑duplicate錛岀浜岄亶鍐嶆壂涓嬈★紝鎵懼嚭浠嶇劧澶т簬0鐨勬暟錛屽叾瀵瑰簲鐨勪笅鏍囧氨鏄痬issing鐨勯偅涓?br /> 1 #645
2 #Runtime: 495 ms
3 #Memory Usage: 14.2 MB
4
5 class Solution(object):
6 def findErrorNums(self, nums):
7 """
8 :type nums: List[int]
9 :rtype: List[int]
10 """
11 ans = [0, 0]
12 for i in range(len(nums)):
13 if nums[abs(nums[i]) - 1] < 0:
14 ans[0] = abs(nums[i])
15 else:
16 nums[abs(nums[i]) - 1] *= -1
17 for i in range(len(nums)):
18 if nums[i] > 0:
19 ans[1] = i + 1
20 return ans
鎬濊礬涓夛紙鐪媠olution寰楀埌鐨勫惎鍙戯紝寮傛垨鎬濇兂錛屽彧鐢ㄤ竴閲峟or寰幆錛屼絾闇瑕佷竴涓猟ict錛夛細(xì)鍘熺悊錛歛^b^b=a
1 #645
2 #Runtime: 471 ms
3 #Memory Usage: 15.7 MB
4
5 class Solution(object):
6 def findErrorNums(self, nums):
7 """
8 :type nums: List[int]
9 :rtype: List[int]
10 """
11 dict_num = {}
12 ans = [0, 0]
13 for i in range(len(nums)):
14 if nums[i] not in dict_num:
15 dict_num[nums[i]] = 1
16 else:
17 ans[0] = nums[i]
18 dict_num[nums[i]] += 1
19 ans[1] ^= (i + 1)
20 ans[1] ^= nums[i]
21 ans[1] ^= ans[0]
22 return ans
鎬濊礬鍥涳紙鐪媠olution寰楀埌鐨勫惎鍙戯紝寮傛垨鎬濇兂錛屼絾瀹為檯鍙渶瑕佷笁閲峟or寰幆錛屼笉闇瑕侀澶杁ict錛夛紝鍘熺悊錛歛^b^b=a錛屾壘鍑篴鍜宐浜岃繘鍒舵渶鍚庝竴浣嶅嚭鐜頒笉鍚岀殑浣嶇疆錛屽皢1-n鍒嗕負(fù)涓ょ被錛屾壂涓閬峮ums鍜?-n涔嬪悗錛屽湪鍏朵腑涓綾諱細(xì)鍑虹幇a錛屽彟涓綾誨嚭鐜癰^b^b錛?b錛夛紝鍐嶆壂涓嬈ums灝辮兘鎵懼埌b浣嶄簬鍝竴綾?br /> 1 #645
2 #Runtime: 306 ms
3 #Memory Usage: 14.8 MB
4
5 class Solution(object):
6 def findErrorNums(self, nums):
7 """
8 :type nums: List[int]
9 :rtype: List[int]
10 """
11 ans = [0, 0]
12 xor = 0
13 for i in range(len(nums)):
14 xor ^= (i + 1)
15 xor ^= nums[i]
16 rightmostbit = xor & ~(xor - 1)
17 for i in range(len(nums)):
18 if (i + 1) & rightmostbit != 0:
19 ans[1] ^= (i + 1)
20 else:
21 ans[0] ^= (i + 1)
22 if nums[i] & rightmostbit != 0:
23 ans[1] ^= nums[i]
24 else:
25 ans[0] ^= nums[i]
26 for i in nums:
27 if ans[0] == i:
28 return ans
29 return [ans[1], ans[0]]

]]>