对于09这样的判断可以不做,直接用String.valueOf方法就行

This commit is contained in:
珂珂
2022-03-01 11:27:42 +08:00
parent c6f465a45f
commit 66c3aab86a

View File

@ -148,23 +148,19 @@ java版本1中创建了String数组多次使用Integer.parseInt了方法
版本2 版本2
class Solution { class Solution {
public int monotoneIncreasingDigits(int n) { public int monotoneIncreasingDigits(int n) {
if (n==0)return 0; String s = String.valueOf(n);
char[] chars= Integer.toString(n).toCharArray(); char[] chars = s.toCharArray();
int start=Integer.MAX_VALUE;//start初始值设为最大值这是为了防止当数字本身是单调递增时没有一位数字需要改成9的情况 int start = s.length();
for (int i=chars.length-1;i>0;i--){ for (int i = s.length() - 2; i >= 0; i--) {
if (chars[i]<chars[i-1]){ if (chars[i] > chars[i + 1]) {
chars[i-1]--; chars[i]--;
start=i; start = i+1;
} }
} }
StringBuilder res=new StringBuilder(); for (int i = start; i < s.length(); i++) {
for (int i=0;i<chars.length;i++){ chars[i] = '9';
if (chars[i]=='0'&&i==0)continue;//防止出现09这样的情况
if (i>=start){
res.append('9');
}else res.append(chars[i]);
} }
return Integer.parseInt(res.toString()); return Integer.parseInt(String.valueOf(chars));
} }
} }
``` ```