LeetCode 738. 單調遞增的數字
阿新 • • 發佈:2020-12-16
題目
給定一個非負整數 N,找出小於或等於 N 的最大的整數,同時這個整數需要滿足其各個位數上的數字是單調遞增。
(當且僅當每個相鄰位數上的數字 x 和 y 滿足 x <= y 時,我們稱這個整數是單調遞增的。)
示例 1:
輸入: N = 10
輸出: 9
示例 2:
輸入: N = 1234
輸出: 1234
示例 3:
輸入: N = 332
輸出: 299
說明: N 是在 [0, 10^9] 範圍內的一個整數。
題解
class Solution {
public:
int monotoneIncreasingDigits (int N) {
if(N<10) return N;
string s=to_string(N);
int index=s.size();
for(int i=index-1;i>0;i--){
if(s[i]<s[i-1]){
index=i;
s[i-1]--;
}
}
for(int i=index;i<s.size();i++){
s[ i]='9';
}
return stoi(s);
}
};