693.交替位二進位制數
阿新 • • 發佈:2022-03-28
題目描述是輸入一個數 判斷二進位制位數 有無連續的數
1.我們可以根據統計二級制中1的個數來進行變形做本題,先定義一個當前數
迴圈遍歷 先判斷最後一位數 進行(n&1) 獲取最後位的二進位制數,和當前cur進行異或判斷==0
異常 相同為0 不同為1 然後如果為0 代表有連續的,我們就 return false;反之cur值為最後一位
進行迴圈判斷
2.int temp=n^(n>>1);return (temp&(temp+1))==0;
進行假定 如果n符合條件 那 二進位制為 101010101 1010這種場景
舉例 5 1 0 1;
1 0
進行異或 1 1 1;
1111111 那這種 一定符合 2的n次方-1 當temp為 2 n次方-1 temp+1 一定是符合 10000000000這種
如果是 n屬於 101010二進位制 那 temp&(temp+1)一定為0 為0代表連續 無重複 反之為有連續重複