博客
关于我
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/

你可能感兴趣的文章
mysql replace first,MySQL中处理各种重复的一些方法
查看>>
MySQL replace函数替换字符串语句的用法(mysql字符串替换)
查看>>
mysql replace用法
查看>>
Mysql Row_Format 参数讲解
查看>>
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>
mysql server has gone away
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>
MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
查看>>
MYSQL sql语句针对数据记录时间范围查询的效率对比
查看>>
mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
查看>>
mysql Timestamp时间隔了8小时
查看>>
Mysql tinyint(1)与tinyint(4)的区别
查看>>
mysql union orderby 无效
查看>>
mysql v$session_Oracle 进程查看v$session
查看>>
mysql where中如何判断不为空
查看>>
MySQL Workbench 使用手册:从入门到精通
查看>>
mysql workbench6.3.5_MySQL Workbench
查看>>
MySQL Workbench安装教程以及菜单汉化
查看>>
MySQL Xtrabackup 安装、备份、恢复
查看>>