mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
对于09这样的判断可以不做,直接用String.valueOf方法就行
This commit is contained in:
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
Reference in New Issue
Block a user