單獨的數字
給定乙個陣列 aa
a,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。
如:\,找出 777。
你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦~
第一行輸入乙個數 n(1≤n≤500)n(1 \leq n \leq 500)n(
1≤n≤
500)
,代表陣列的長度。
接下來一行輸入 nn
n 個 int 範圍內(−2147483648…2147483647-2147483648\ldots 2147483647−2
1474
8364
8…21
4748
3647
)的整數,表示陣列 aa
a。保證輸入的陣列合法。
輸出乙個整數,表示陣列中只出現一次的數。
樣例輸入
40 0 0 5
樣例輸出
5
思路:
把每個數的每一位二進位制數儲存到乙個陣列中,最後遍歷。
如果出現的是能被3整除則表示出現了3次,然後利用二進位制轉十進位制得出出現一次的數
**:
#include#include#include#include#include#includeusing namespace std;
int main()
int k=1;
int ans=0;
for(int i=0;i<32;i++)
cout<
計蒜客 單獨的數字
給定乙個陣列 a,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 7。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 輸入格式 第一行輸入乙個數n 1 n 500 代表陣列的長度。接下來一行輸入 n 個 int 範圍內 2147483648 2147483647 的...
計蒜客 單獨的數字
給定乙個陣列 a a,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 77。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 第一行輸入乙個數 n 1 leq n leq 500 n 1 n 500 代表陣列的長度。接下來一行輸入 n n 個 int 範圍內 2147...
計蒜客 單獨的數字
給定乙個陣列 aa,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 77。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 輸入格式 第一行輸入乙個數 n 1 leq n leq 500 n 1 n 500 代表陣列的長度。接下來一行輸入 nn 個 int 範圍內 2...