738.单调递增的数字
public class Solution {public int MonotoneIncreasingDigits(int n) {string nu=n.ToString();char[] num=nu.ToCharArray();int idx=num.Length;for(int i=num.Length-1;i>0;i--){if(num[i]<num[i-1]){idx=i;num[i-1]--;}}for(int i=idx;i<num.Length;i++){num[i]='9';}return int.Parse(new string(num));}
}
先将输入的数字转换成Char数组类型储存,便于单个遍历以及修改,然后从最后一个依次向前遍历,如果第I个比第I-1个小,那Idx指针记录当前位置说明需要后续改变为9,同时处理I-1处减小1,当天减小操作处理完后将Idx后的所有数字都变为9则符合题意。