Leetcode 483 最小好進製 C

2021-10-08 02:09:34 字數 805 閱讀 1373

對於給定的整數 n, 如果n的k(k>=2)進製數的所有數字全為1,則稱 k(k>=2)是 n 的乙個好進製。

以字串的形式給出 n, 以字串的形式返回 n 的最小好進製。

示例 1:

輸入:"13"

輸出:"3"

解釋:13 的 3 進製是 111。

示例 2:
輸入:"4681"

輸出:"8"

解釋:4681 的 8 進製是 11111。

示例 3:
輸入:"1000000000000000000"

輸出:"999999999999999999"

解釋:1000000000000000000 的 999999999999999999 進製是 11。

n的取值範圍是 [3, 10^18]。

輸入總是有效且沒有前導 0。

問題等價於,求最小的k,使得ki求和=(1-km+1)/(1-k)=n,成立。我們可以得到乙個關係1<=m<=log2n,同時我們還可以知道k應該在[2,m根號下n],對於m,我們可以用二分查詢k。詳細過程見**

string smallestgoodbase

(string n)

if(sum == num)

return

to_string

(mid)

;else

if(sum > num) r = mid-1;

else l = mid+1;

}}return"";

}

Leetcode 最小K個數

思路 基於快排改進 選取arr 0 作為基準值,tmp arr 0 排序後,返回tmp的下標index 此時,arr index 左側的值都小於tmp,右側的值都大於tmp。如果k index,那麼從起始點0到下標index 1的值就為最小的k個數,如果k index,說明k個數在區間 0,inde...

leetcode 最小高度樹

給定乙個有序整數陣列,元素各不相同且按公升序排列,編寫乙個演算法,建立一棵高度最小的二叉搜尋樹。由於陣列已經是有序陣列,所以構建二叉搜尋樹並不難,基於二叉樹的特性,我們將陣列劃分為兩部分,遞迴構建其左右子樹即可.對於題目中要求的高度最小,我們知道一棵平衡樹是高度最小的二叉樹.因此我們每次切分應當保證...

Leetcode 最小公共祖先

演算法描述 在二叉樹中求指定兩個節點的最小公共祖先 輸入 treenode root,p,q 輸出 lca 參考思路 演算法思路 首先構建如下結構體儲存所需要的資訊 struct frame在求解過程中,需要知道當前節點以及其父節點,並記錄可能的最小公共父節點。首先構建樹的後序遍歷序列ret,以fr...