Every day a leetcode
题目来源:504. 七进制数
解法1:迭代
15秒写完。
注意负号和0。
代码:
/*
* @lc app=leetcode.cn id=504 lang=cpp
*
* [504] 七进制数
*/
// @lc code=start
class Solution
{
public:
string convertToBase7(int num)
{
if (num == 0)
return "0";
int n = abs(num);
string ans;
while (n)
{
ans += '0' + n % 7;
n /= 7;
}
if (num < 0)
ans += "-";
reverse(ans.begin(), ans.end());
return ans;
}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(log∣num∣) ,其中 ∣num∣ 表示 num 的绝对值。循环中最多做 O(log∣num∣) 次除法。
空间复杂度:O(log∣num∣),字符数组的长度最多为O(log∣num∣)。部分语言可以直接修改字符串,空间复杂度为 O(1)。