刷題 位運算

2021-09-24 21:10:28 字數 1240 閱讀 4936

#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 這個技巧還是很實用的,利用的是...