給定乙個陣列 aa,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。
如:,找出 7。
你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦~
第一行輸入乙個數 n( 1 <= n <= 500 ),代表陣列的長度。
接下來一行輸入 nn 個 int 範圍內( 2147483647−2147483648 )的整數,表示陣列 a。保證輸入的陣列合法。
輸出乙個整數,表示陣列中只出現一次的數。
樣例輸入
樣例輸出40 0 0 5
將陣列中每乙個數對應的二進位制位求和然後再對3取餘(整除為0,未整除為1),最後將餘數按順序組成乙個新的數就是結果5
比如:100
0120
0101
0001
2001
0100
0120
0103
0011
和004
4300
11**實現如下
#include #include using namespace std;
int sum[32] ;
int main()
} for( int i=0 ; i<32 ; i++ )
ans += sum[i]
}}
計蒜客 單獨的數字
給定乙個陣列 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 a,除了乙個數出現一次之外,其餘數都出現三次。找出出現一次的數。如 找出 777。你的演算法只能是線性時間的複雜度,並且不能使用額外的空間哦 第一行輸入乙個數 n 1 n 500 n 1 leq n leq 500 n 1 n 500 代表陣列的長度。接下來一行輸入 ...