時間限制:1000ms 記憶體限制:65536k
給定乙個陣列 a
,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。
如:,找出 7
。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦~
第一行輸入乙個數 n(1
≤n≤5
00),代表陣列的長度。
接下來一行輸入 n
個 int 範圍內(−21
4748
3648
…214
7483
647)的整數,表示陣列 a
。保證輸入的陣列合法。
輸出乙個整數,表示陣列中只出現一次的數。
樣例輸入
40 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...