LeetCode 1680 連線連續二進位制數字

2021-10-11 14:14:16 字數 1015 閱讀 4156

給你乙個整數 n ,請你將 1 到 n 的二進位制表示連線起來,並返回連線結果對應的 十進位制 數字對 109 + 7 取餘的結果。

示例 1:

輸入:n = 1

輸出:1

解釋:二進位制的 「1」 對應著十進位制的 1 。

示例 2:

輸入:n = 3

輸出:27

解釋:二進位制下,1,2 和 3 分別對應 「1」 ,「10」 和 「11」 。

將它們依次連線,我們得到 「11011」 ,對應著十進位制的 27 。

示例 3:

輸入:n = 12

輸出:505379714

解釋:連線結果為 「1101110010111011110001001101010111100」 。

對應的十進位制數字為 118505380540 。

對 109 + 7 取餘後,結果為 505379714 。

1 <= n <= 105

問題分析:

對於1到n的數字,我們可以每次看乙個數字,比如從1到3。

先定義最後返回的是ans

對於1,看成是0之後加入的數字,則1加入後,整體向左移動1位,則ans乘以2,然後在加上後來加的數字1,變成了ans=02+1=1(1)

對於2,1後面加上2,ans整體向左移動2位,所以ans=14+2=6(110

對於3,2後面加上3,ans整體向左移動2位,所以ans=6*4+3=27(110111

後面加粗的是後來加上去的,就相當於i

**如下

#define ll long long

const ll mod=

1e9+7;

class

solution

return lshift;

}int

concatenatedbinary

(int n)

return ans%mod;}}

;

二進位制 leetcode

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

mysql二進位制 MySql二進位制連線方式詳解

使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示視窗,你可以...

二進位制數反轉

1 使用了歸併排序的思路 最快 但是時間複雜度比歸併排序要小,每行 都相當於完成了一次歸併 include unsigned revbit unsigned x void main 2 把乙個32位整數按位反轉,即第1位轉到第32位,第2位轉到第31位,依次下去。一牛人寫的演算法如下 unsigne...