#includeusing namespace std;
// 不使用中間變數交換兩個整數的值
void swap(int &a, int &b)
// 整數的二進位制表達中有多少個1
int number_of_one(int n)
return result;
}//在乙個整數陣列中,只有1個數出現了奇數次,其餘數都出現了偶數次,找出出現奇數次的數。
int findoddtimesnum(int arr,int n)
return result;
}//在乙個整數陣列中,只有2個數出現了奇數次,其餘數都出現了偶數次,找出出現奇數次的數。
void findoddtimesnum_2(int arr, int n)
int rightone = num_1 & (~num_1 +1 );
for (int i = 0; i < n; ++i)
cout << "出現奇數次的元素為:" << num_2 <<" 和 "<< (num_1^num_2)<< endl;
}//在乙個其他數都出現 k 次的陣列中找到只出現一次的數
int ktoten(int *arr, int k)
return result;
}void tentok(int num, int *arr, int k)
}void xor_k(int *result, int cur, int k)
; tentok(cur, cur_k, k);
for (int i = 31; i > -1; --i) }
int findoncetimenum(int arr, int n,int k)
; for (int i = 0; i < n; ++i)
return ktoten(result, k);
}int main()
; //cout << "出現奇數次的元素為:" << findoddtimesnum(d, 11) << endl;
//在乙個整數陣列中,只有2個數出現了奇數次,其餘數都出現了偶數次,找出出現奇數次的數。
//int e = ;
//findoddtimesnum_2(e, 12);
int f = ;
cout << "出現1次的元素為:" << findoncetimenum(f, 19,3) << endl;
return 0;
}
C LeetCode刷題 位運算
位運算篇 題名刷題通過率難度 78子集 67.2 中等136 只出現一次的數字 c leetcode刷題之 136 只出現一次的數字 single number 53.5 簡單137 只出現一次的數字 ii 60.7 中等169 求眾數 c leetcode刷題之 169 求眾數 majority ...
位運算總結(刷題)
4.繼續刷題 不用額外的變數交換兩個整數的值 異或應用 5.不用任何比較判斷找出兩個數中較大的數 6.只用位運算不用算術運算實現整數的加減乘除運算 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函...
位運算 刷題總結
位運算 從現代計算機中所有的資料二進位制的形式儲存在裝置中。即 0 1 兩種狀態,計算機對二進位制資料進行的運算 都是叫位運算。判斷兩個數是否異號 int x 1 y 2 bool f x y 0 true int x 3,y 2 bool f x y 0 false 這個技巧還是很實用的,利用的是...