504. 七进制数
题目描述
给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。
示例 1:
输入: num = 100 输出: "202"
示例 2:
输入: num = -7 输出: "-10"
提示:
-107 <= num <= 107
解法
方法一:模拟
思考
七进制转换就是反复除 \(7\) 取余。负数可先转绝对值再补符号;\(0\) 单独返回。余数序列是低位在前,拼接前需要反转。
除法次数与位数成正比,位数为 \(O(\log |num|)\),远小于任何更重的字符串模拟。
我们不妨假设 num 大于等于 \(0\),那么,如果 num 等于 \(0\),只需要返回 \(0\) 即可。否则,我们将 \(num\) 模 \(7\) 的结果保存起来,最后逆序拼接成字符串即可。
时间复杂度 \(O(\log n)\),忽略答案的空间消耗,空间复杂度 \(O(1)\)。其中 \(n\) 是 num 的绝对值大小。
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |