本文主要是介绍代码随想录算法训练营第三十二天|leetcode738题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、leetcode第738题
本题要求返回小于等于给定数字且从最高位到最低位呈单调递增的数值,需要从最低位向最高位遍历,如果最低位比其前一位小则若要使改变后数值最大需要将前一位作减一操作并记录下当前位,在遍历结束后将记录的当前位之后的所有位数值都置为9,此时返回的数值即为所求。
具体代码如下:
class Solution {
public:int monotoneIncreasingDigits(int n) {string str=to_string(n);int flag=str.length();for(int i=flag-1;i>0;i--){if(str[i]<str[i-1]){str[i-1]--;flag=i;}}for(int i=flag;i<str.length();i++){str[i]='9';}return stoi(str);}
};
这篇关于代码随想录算法训练营第三十二天|leetcode738题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!