單獨的數字 位運算

2022-03-04 05:33:46 字數 798 閱讀 9337

時間限制:1000ms 記憶體限制:65536k

給定乙個陣列 a

,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。

如:,找出 7

。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦~

第一行輸入乙個數 n(1

≤n≤5

00),代表陣列的長度。

接下來一行輸入 n

個 int 範圍內(−21

4748

3648

…214

7483

647)的整數,表示陣列 a

。保證輸入的陣列合法。

輸出乙個整數,表示陣列中只出現一次的數。

樣例輸入

4

0 0 0 5

樣例輸出

5

總結:這個題正確的思路當然是位運算了,由題知除了乙個數以外的數全部是3個則可以按位相加後對3取餘來的到結果。

例如:**:

#include using namespace std;

int main()

cin>>n;

for(int i=0; i>a;

for(int j=0; j<32; j++)

}int ans = 0;

for(int i=0; i<32; i++)

sort(board,board+n);//排序

for(int i=0 ; i=n || board[i]!=board[i+1])) }

return 0;

}

位運算習題 單獨的數字

給定乙個陣列 a a,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 77。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 第一行輸入乙個數 n 1 n 500 n 1 n 500 代表陣列的長度。接下來一行輸入 n n 個 int 範圍內 2147483648 2...

計蒜客 單獨的數字(位運算)

給定乙個陣列 a,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 7。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 輸入格式 第一行輸入乙個數n 1 n 500 代表陣列的長度。接下來一行輸入 n 個 int 範圍內 2147483648 2147483647 的...

簡單的演算法問題8 單獨的數字(位運算)

此演算法均是用c 編寫 此題目均是來做計蒜客 給定乙個陣列 a,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 7。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 第一行輸入乙個數 n 1 n 500 代表陣列的長度。接下來一行輸入 n個 int 範圍內 21474...