給定乙個陣列 aa,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。
如:\,找出 77。
你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦~
第一行輸入乙個數 n(1 \leq n \leq 500)n(1≤n≤500),代表陣列的長度。
接下來一行輸入 nn 個 int 範圍內(-2147483648\ldots 2147483647−2147483648…2147483647)的整數,表示陣列 aa。保證輸入的陣列合法。
輸出乙個整數,表示陣列中只出現一次的數。
樣例輸入複製
4
0 0 0 5
樣例輸出複製
5
用了python的兩種方法一種是列表,另一種是字典
1.列表方法
2.字典方式n=int(input())
arr=[int(i) for i in input().split()]
for i in arr:
if(arr.count(i)==1):
print(i)
n = int(input())
a = list(map(int,input().split()))
d = {}
for i in a:
d[i] = d.get(i,0)+1
items = list(d.items())
items.sort(key=lambda x:x[1])
i,count = items[0]
print(i)
單獨的數字
解法一 class solution res sum 3 return res 還有一種解法,思路很相似,用3個整數來表示int的各位的出現次數情況,one表示出現了1次,two表示出現了2次。當出現3次的時候該位清零。最後答案就是one的值。ones代表第ith 位只出現一次的掩碼變數 twos代...
單獨的數字
題目描述 給定乙個陣列 a 除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 7 你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 輸入第一行輸入乙個數 n 1 leq n leq 500 代表陣列的長度。接下來一行輸入 n 個 int 範圍內 2147483648 l...
單獨的數字 位運算
時間限制 1000ms 記憶體限制 65536k 給定乙個陣列 a 除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 7 你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 第一行輸入乙個數 n 1 n 5 00 代表陣列的長度。接下來一行輸入 n 個 int 範圍內 2...