题目:
代码(首刷自解 2024年2月18日):
爽,无bug一遍过。这题思路是将数字从低位到高位一位一位放入数组中,如果出现高位大于地位的情况则将低位全部重置为9,然后高位-1,最后反向遍历相加即可
class Solution {
public:int monotoneIncreasingDigits(int n) {vector<int> digits(1,9);while (n != 0) {int number = n % 10;n = n / 10;if (number <= digits.back()) {digits.push_back(number);continue;} else {digits = vector<int>(digits.size(),9);if (number == 0) {number = 9;n--;} else {number--;}digits.push_back(number);}}int res = 0;for (int i = digits.size() - 1; i >= 1; --i) {res = res * 10 + digits[i];}return res;}
};