from typing import List
class Solution:
# 第一種是我想的辦法
def singleNumber(self, nums: List[int]) -> int:
# 首先進行排序
nums.sort()
# 然後判斷重複的數字,陣列中的數字必定為奇數個,
# 如果迴圈沒有跳出,那麼陣列的最後一個數字一定為不重複的數字
for index in range(1,len(nums),2):
if nums[index] != nums[index - 1]:
return nums[index -1]
return nums[-1]
# 第二個答案是官方解答
def singleNumber1(self, nums: List[int]) -> int:
# 位運算,任何數和零位運算都為本省
# 位運算,是二進位制的異或運算。
# 100 ^ 110 = 10 #這是二進位制。
# 這就相當於將陣列中的每一個數都分解為二進位制。
# 然後將每一位進行異或運算。最後留下來的二進位制就是沒有重複的。
num = 0
for index in range(len(nums)):
num ^= nums[index]
return num
A = Solution()
print(A.singleNumber1([1,2,2,3,3,4,4]))
print(A.singleNumber1([1,1,2,2,3,3,4,4,5]))
136只出現一次的數字
相關文章
- 只出現一次的數字 II
- LeetCode 只出現一次的數字LeetCode
- 136. 只出現一次的數字
- LC-出現一次的數字II
- 只出現一次的數字--力扣力扣
- LeetCode 只出現一次的數字IIILeetCode
- LeetCode 只出現一次的數字IILeetCode
- LeetCode136 只出現一次的數字LeetCode
- LeetCode之只出現一次的數字-SwiftLeetCodeSwift
- 找出陣列中只出現一次的數字陣列
- 力扣136.只出現一次的數字力扣
- leetcode136. 只出現一次數字LeetCode
- leetcode力扣136.只出現一次的數字LeetCode力扣
- JZ-040-陣列中只出現一次的數字陣列
- LeetCode每日一題:只出現一次的數字(No.136)LeetCode每日一題
- Leetcode 137:只出現一次的數字 II(最詳細的解法!!!)LeetCode
- LeetCode 136. 只出現一次的數字【c++/java詳細題解】LeetCodeC++Java
- 在其它數都出現k次的陣列中找到只出現一次的數陣列
- 資料庫180:連續出現的數字資料庫
- input 限制字數輸入時候 限制字數會出現負數
- 統計陣列中各數字(元素)出現的次數陣列
- [題解] 條件變數實現數字的交替輸出變數
- Matlab tabulate統計數字出現的次數,如果陣列中出現0Matlab陣列
- 找出陣列中第 k 大的數字及其出現次數陣列
- Matlab 統計陣列中各數字(元素)出現的次數Matlab陣列
- 劍指 Offer 56 - I. 陣列中數字出現的次數陣列
- 第一次只出現一次的字元字元
- 統計一個字串出現頻率最高的字母/數字字串
- 數字沙盤的應用表現出的四大特點
- 數字展廳設計所表現出的應用優勢
- 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。陣列
- 智慧數字經營的出現能夠解決哪些實際問題?
- 第一個只出現一次的字元——Java字元Java
- 數字化之路(四):企業數字化轉型的若干發現
- 三維數字沙盤應用所表現出的七大特點
- python實現:輸入2個整形數字,輸出最大值Python
- 2351. 第一次出現兩次的字母
- 讓ICT飛鳥,長出數字能源的翅膀