博客
关于我
Leetocde5738. K进制表示下的各位数字总和 JAVA短除法+函数调用两种解法
阅读量:512 次
发布时间:2019-03-07

本文共 642 字,大约阅读时间需要 2 分钟。

解题思路:

方法一:直接调用Java函数

Integer.toString(n, k)的作用是将十进制数n转换为k进制字符串。在转换后的字符串中,每一位字符可以用'0'减去ASCII码转换为数字,逐个相加即可得到结果。

方法二:短除法

通过不断将n除以k,取余数并将余数累加,直接得到k进制各位数字的和。这种方法不需要额外的转换步骤,简洁且高效。

代码:

class Solution {    public int sumBase(int n, int k) {        String s = Integer.toString(n, k);        int ans = 0;        for (char i : s.toCharArray()) {            ans += i - '0';        }        return ans;    }}

复杂度分析:

  • 时间复杂度:O(log n)
  • 空间复杂度:O(1)

代码:

class Solution {    public int sumBase(int n, int k) {        int ans = 0;        while (n != 0) {            ans += n % k;            n /= k;        }        return ans;    }}

复杂度分析:

  • 时间复杂度:O(log n)
  • 空间复杂度:O(1)

转载地址:http://faynz.baihongyu.com/

你可能感兴趣的文章
PHP项目集成支付宝PC端扫码支付API(国内支付)
查看>>
php预定义常量&变量
查看>>
R 集成算法③ 随机森林
查看>>
php验证码背景色设置无效
查看>>
php验证邮箱是否有效
查看>>
PHP高性能分布式应用服务器框架-SwooleDistributed
查看>>
PHP高效、轻量级表格数据处理库 OpenSpout
查看>>
php:$_ENV 和 getenv区别
查看>>
pid控制
查看>>
PID控制器数字化
查看>>
PIESDKDoNet二次开发配置注意事项
查看>>
PIL.Image、cv2的img、bytes相互转换
查看>>
Pillow lacks the JPEG 2000 plugin
查看>>
ping 命令的七种用法,看完瞬间成大神
查看>>
Pinia:$patch的使用场景
查看>>
Pinia:$subscribe()的使用场景
查看>>
Pinpoint对Kubernetes关键业务模块进行全链路监控
查看>>
Pinterest 大规模缓存集群的架构剖析
查看>>
pintos project (2) Project 1 Thread -Mission 1 Code
查看>>
PinYin4j库的使用
查看>>