LeetCode 二進位制問題

2022-06-15 20:42:13 字數 1041 閱讀 7103

338. counting bits(計算小於n的各個數值對應的二進位制1的個數)

思路:通過奇偶判斷,if i是偶數,a[i]=a[i/2],if i是奇數,a[i]=a[i-1]+1。

class

solution

return

res;

}};

136. single number(只有乙個元素出現1次,其他出現2次,尋找只出現一次的數值)

思路:異或 解決,異或性質: x^x=0,x^0=x

class

solution

return

res;

}};

137. single number ii (只有乙個元素出現1次,其他出現3次,尋找只出現一次的數值);

思路:按照位運算,每個位置是上1的個數為3,則變0

class

solution

if (count % 3 != 0)//

如果每個位置上的1不為3,則最後的數字中,這個位置中一定是1

answer |=a;

}return

answer;

}};

260. single number iii(有兩個元素出現1次,其他出現2次,尋找兩個出現一次的數值);

思路:整體異或結果,而後在這個結果中某個位置為1的位置,進而分割成兩個部分,分別異或,者可得到結果

class

solution

int index = 0;//

記錄異或的結果第乙個為1的位置,0表示第乙個位置為1

for (int i = 0; i < 32; i++)

int num1=0, num2 = 0

;

for (int i = 0; i < n; i++)

vec.push_back(num1);

vec.push_back(num2);

return

vec;

}};

二進位制 leetcode

5 toc 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。class solution return result 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。思路 某一位上1出現的次...

二進位制問題

題目 題解 純二進位制題目。因為所有的水都是由兩份相同的水合併而成的,因此每瓶水的體積一定是2 i,i in n 2 i i n 公升。最後保留k個瓶子,那麼最後總的公升數的二進位制表示中,1的個數一定 k。本題實質上是用不超過k個1和無數個0生成乙個最接近且大於n的二進位制數 方法一 includ...

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...