1. 程式人生 > 其它 >LeetCode 738. 單調遞增的數字

LeetCode 738. 單調遞增的數字

技術標籤:LeetCodeleetcodec++

題目

給定一個非負整數 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); } };