演算法筆試模擬題精解之「一的個數」

2021-10-06 14:18:43 字數 756 閱讀 6123

前言

給你兩個數字l、r,問在區間[l,r] 內的所有數中,二進位制表示下「1」的個數最多的乙個數是多少,如果有多個相同的,輸出所有符合條件的數中最小的乙個數。

輸入乙個整數l, 和乙個整數r。(1<=l<=r<=10^9)

輸出乙個數字表示[l,r] 內二進位制下「1」的個數最多的數。如果有多個,輸出符合條件的數中最小的。

示例1輸入:510

輸出:7

注:7的二進位制為111

直接上**,注意按位與運算的運用

**

#include

#include

using

namespace std;

intbinary

(int k)

;//十進位制轉二進位制,返回二進位制中1的個數

intminmumdigit

(int l,

int r)

;int

main()

intbinary

(int k)

return count;

}int

minmumdigit

(int l,

int r)

for(j=l;j

}

結果

恢復字串 演算法筆試模擬題精解

給出兩個僅包含 兩種字元且長度相同字串 s1 s2,你需要通過填充數字將這兩個字串恢復成乙個合法的表示式。並且只能填入正整數,恢復後的表示式的值必須非負。例如對於字串 你可以將其變成 1 1 2 但是不可以變成 1 1 3 也不可以變成 1 0 1 定義你的消耗為你填充的所有正整數的和。比如 1 1...

阿里筆試模擬題 68 一的個數

概述 給你兩個數字l r,問在區間 l,r 內的所有數中,二進位制表示下 1 的個數最多的乙個數是多少,如果有多個相同的,輸出所有符合條件的數中最小的乙個數。輸入乙個整數l,和乙個整數r。1 l r 10 9 輸出乙個數字表示 l,r 內二進位制下 1 的個數最多的數。如果有多個,輸出符合條件的數中...

LeetCode演算法題200 島嶼的個數解析

給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11000 00100 00...