题目内容
给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。
(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)
示例 1:
输入: N = 10
输出: 9
示例 2:
输入: N = 1234
输出: 1234
示例 3:
输入: N = 332
输出: 299
解题思路
无
解题代码
class Solution {
public:
int monotoneIncreasingDigits(int N) {
vector<int> t;
int x=N;
while(x>0)
{
t.push_back(x%10);
x/=10;
}
x=0;
while((x+1)<t.size())
{
if(t[x]>=t[x+1]){x++;continue;}
else{int i=0;for(i=0;i<=x;i++)t[i]=9;t[x+1]--;}
x++;
}
N=0;
x=0;
while(x<t.size())
{
N+=t[x]*pow(10,x);
x++;
}
return N;
}
};