483. Smallest Good Base
483. Smallest Good Base
题目链接:https://leetcode.com/problems...
enumerate,但是不是结果,而是幂。方法特别巧妙,另外求幂的和还可以优化用快速幂来求。知道幂之后,根据逼近法,可以得到base:k = logm(n) = (long) (pow(n, 1/m)) = (long) (log(n) / log(m))
,幂的最大值是min(log2(n), 64)
,当然这个是m>1的时候。注意求pow(base, m)不能直接用pow因为java里面double和long的转换过程中会丢失信息,所以要用乘来做。
参考这个博客:
http://bookshadow.com/weblog/...
public class Solution {public String smallestGoodBase(String n) {long num = Long.valueOf(n);for(int m = Math.min((int) (Math.pow(num, 0.5)), 64); m > 1; m--) {// k = logm(num)long k = (long) Math.pow(num, 1.0 / m);if(isGoodBase(num, k, m)) return String.valueOf(k);}return String.valueOf(num - 1);}private boolean isGoodBase(long num, long base, int m) {long sum = num;long val = 1;// calculate k^0, k^1, ..., k^mfor(int i = 0; i <= m; i++) {sum -= val;val *= base;}return sum == 0;}
}
另外题目标签是binary search,应该是对k的取值可以用binary search来找。
483. Smallest Good Base相关推荐
- Leetcode 483. Smallest Good Base [Python]
从上面的图可以看得到当a为1的时候,r就是这个题目要求的good base. 结合评论区大佬( https://leetcode.com/problems/smallest-good-base/dis ...
- [Swift]LeetCode483. 最小好进制 | Smallest Good Base
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- leetcode算法练习 JavaScript实现
leetcode 表格内容由spider.js从leetcode-cn.com爬取. 已做题目答案也从leetcode-cn.com中爬取并生成文件. 解题进度:已解决 140/637 - 简单 94 ...
- LeetCode All in One 题目讲解汇总(持续更新中...)
原文地址:https://www.cnblogs.com/grandyang/p/4606334.html 终于将LeetCode的大部分题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开 ...
- Jetson 基本笔录
文章目录 Roadmap 前言 Jetson Linux 部分文档 调试串口 Script apply_binaries 日志 进入Recovery模式 flash.sh 日志 官方固件烧录完后串口终 ...
- 毒霸07.11.19.18版本 新增加922个查杀病毒
毒霸病毒信息库07.11.19.18版本新增可查杀病毒数922,其中:木马黑客蠕虫病毒数:731; 风险病毒数:170 其他病毒数:21. 1. JS.Exploitbd.tv 2. VBS.Expl ...
- SROP 64位-smallest(2017429ctf.ichunqiu)
1 概述 360春秋杯"国际网络安全挑战赛 Challenge - smallest (pwn 300) - 429 ichunqiu ctf 2017 http://2017429ctf. ...
- Excel函数词典(483个函数说明 Excel函数公式Excel小技巧
Excel函数词典(483个函数说明 Excel函数公式Excel小技巧 函数 类别 属性 新函数 说明 语法 BETADIST 兼容性函数 被替换 BETA.DIST 返回累积 beta 概率密度函 ...
- ValueError: invalid literal for int() with base 10: “ ”
出现这个错误 :ValueError: invalid literal for int() with base 10: '' " 或者: ValueError: invalid liter ...
- ValueError: invalid literal for int() with base 10
在运行<机器学习实战>第二章中的代码样例时, 我遇到如下错误: 下面是网上参考文献[1]中的例子 Traceback (most recent call last): File &qu ...
最新文章
- 让Hinton后悔投少了的AI公司:吴恩达弟子创办,李飞飞也是投资人
- js断点和调试学习总结3
- vs配置不依赖其他包路径
- 【转】使用ssh-copy-id 快速的配置免密登录
- schedule execution
- 28335的CPU定时器解析
- .Net Core实现区块链初探
- mysql 组复制 不一致_使用MySQL组复制的限制和局限性
- 为什么苹果不再需要谷歌地图?
- vue导入swiper_vue项目中导入swiper插件的方法
- English trip V2-B 1 What's on the Menu? 菜单上有什么? Teacher:Tom
- OSChina 周二乱弹 —— 这样成功要到小护士姐姐的微信
- 帝国CMS7.5二次元COS漫画分享漫展网站源码
- 计算机网络考研笔记(持续更新)
- fx3g485通讯模块_三菱FX3G型PLC采用RS485变频器作半双工
- 旋转式直流无刷Maxon电机与copley驱动器调试
- 关于DXP2004的安装
- MySQL-查询本周过生日的人-终极答案
- opencv保存视频文件很大
- 如何系统磁盘和raid卡的槽位对应起来