题目描述
题目链接:https://leetcode.cn/problems/plus-one/description/
思路
暴力法:三种情况
- 末尾没有9,直接+1,返回数组;
- 末尾有若干9,比如989,找到一位不为9的元素+1,返回数组;
- 全为9,比如999,需要扩容数组 int[] temp =new int[digits.length+1]; 将digits(全为0)存到temp中,temp[0] = 1,返回temp。
代码实现
class Solution {
public int[] plusOne(int[] digits) {
for(int i = digits.length-1;i>=0;i--){
if(digits[i] == 9){
digits[i] = 0;
if(i==0){ //999+1 需要扩容数组
//新增temp数组,扩大一个空间
int[] temp =new int[digits.length+1];
temp[digits.length] = 0;
for(int j=1;j<digits.length;j++){
temp[j] = digits[j-1];
}
temp[0]=1;
return temp;
}
}else{
digits[i] = digits[i] + 1;
break;
}
}
return digits;
}
}
运行结果:内存炸裂