题目地址:
https://leetcode.com/problems/maximum-69-number/
给定一个只含 6 6 6和 9 9 9的十进制数 n n n,最多允许将其中一个 6 6 6改为 9 9 9(允许不改),问能得到的最大数是几。
显然要改最高的 6 6 6,如果全是 9 9 9则不改。代码如下:
class Solution {
public:
int maximum69Number(int num) {
string s = to_string(num);
for (auto& ch : s)
if (ch == '6') {
ch = '9';
break;
}
return stoi(s);
}
};
时空复杂度 O ( log n ) O(\log n) O(logn), log n \log n logn是其位数的量级。