對於給定的整數 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...