單獨的數字 python

2021-09-01 09:18:03 字數 900 閱讀 7364

給定乙個陣列 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.列表方法

n=int(input())

arr=[int(i) for i in input().split()]

for i in arr:

if(arr.count(i)==1):

print(i)

2.字典方式

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...