[Swift]LeetCode483. 最小好进制 | Smallest Good Base

[Swift]LeetCode483. 最小好进制 | Smallest Good Base,第1张

概述For an integer n, we call k>=2 a good base of n, if all digits of n base k are 1. Now given a string representing n, you should return the smallest good base of n in string format.  Example 1: Input:

For an integer n,we call k>=2 a good base of n,if all digits of n base k are 1.

Now given a string representing n,you should return the smallest good base of n in string format. 

Example 1:

input: "13"Output: "3"Explanation: 13 base 3 is 111. 

Example 2:

input: "4681"Output: "8"Explanation: 4681 base 8 is 11111. 

Example 3:

input: "1000000000000000000"Output: "999999999999999999"Explanation: 1000000000000000000 base 999999999999999999 is 11. 

Note:

The range of n is [3,10^18]. The string representing n is always valID and will not have leading zeros.

对于给定的整数 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。

12ms

 1 class Solution { 2     func smallestGoodBase(_ n: String) -> String { 3         var num:Int = Int(n)! 4         for i in (2...(Int(log(Double(num + 1)) / log(2)))).reversed() 5         { 6             var left:Int = 2 7             var right:Int = Int(pow(Double(num),1.0 / Double(i - 1))) + 1 8             while (left < right) 9             {10                 var mID:Int = left + (right - left) / 211                 var sum:Int = 012                 for j in 0..<i13                 {14                     sum = sum * mID + 115                 }16                 if sum == num {return String(mID)}17                 else if sum < num {left = mID + 1}18                 else {right = mID}19             }20         }21         return String(num - 1)22     }23 }
总结

以上是内存溢出为你收集整理的[Swift]LeetCode483. 最小好进制 | Smallest Good Base全部内容,希望文章能够帮你解决[Swift]LeetCode483. 最小好进制 | Smallest Good Base所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1020016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存