66. Plus One
最后更新
二刷
12-Jan-2017
看了一刷的做法,发现自己二刷做的真是丑陋。。重新按一刷思路做了一下。。
还是从右往左找第一个不是9的数位。。都是9的话答案就是1000000000000这= =
public class Solution {
public int[] plusOne(int[] digits) {
int i = 0;
for (i = digits.length - 1; i >= 0; i --) {
if (digits[i] != 9) break;
}
if (i == -1) {
int[] res = new int[digits.length+1];
res[0] = 1;
for (i = 1; i < res.length; i++) {
res[i] = 0;
}
return res;
} else {
digits[i] ++;
for (i = i + 1; i < digits.length; i++) {
digits[i] = 0;
}
return digits;
}
}
}
一刷
03-Nov-2016
从右往左找第一个不是9的数位,然后分情况讨论。
Time: O(n)
Space: O(1)
public class Solution {
public int[] plusOne(int[] digits) {
int i = digits.length - 1;
for (i = digits.length - 1; i >= 0; i--) {
if (digits[i] != 9) break;
}
if (i >= 0) {
digits[i]++;
for (int j = i+1; j < digits.length; j++) {
digits[j] = 0;
}
return digits;
} else {
int[] res = new int[digits.length+1];
for (int j = 1; j < digits.length; j++) {
res[j] = 0;
}
res[0] = 1;
return res;
}
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步