https://leetcode.cn/problems/monotone-increasing-digits/
算法思想:
要求x[i-1]<=x[i]需要從后面開始遍歷,當(dāng)遇到不符合條件的情況,就把i變成9,i-1的位置-1操作。
class Solution {
public:
? ? int monotoneIncreasingDigits(int n) {
? ? ? ? //轉(zhuǎn)化為字符串進(jìn)行處理
? ? ? ? string s = to_string(n);
? ? ? ? int flag = s.size(); //記錄從哪里開始變成9
? ? ? ? for(int i=s.size()-1; i>0;i--)
? ? ? ? {
? ? ? ? ? ? if(s[i-1]> s[i])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? flag=i;//標(biāo)記從哪里開始變成9
? ? ? ? ? ? ? ? s[i-1]--;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? for(int i=flag; i<s.size();i++)
? ? ? ? {
? ? ? ? ? ? s[i] = '9';
? ? ? ? }
? ? ? ? return stoi(s);
? ? }
};