题目:加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
思路:循环遍历数组判断值是否等于9,如果不等于9直接++即可,等于9则原位归零,继续判断上一位的值…
代码
public class PlusOne {
public static int[] plusOne(int[] digits) {
for(int i = digits.length-1; i>=0; i--) {//从后往前遍历
if(digits[i]==9) {//如果位数是9则归零
digits[i] = 0;
}else {//位数上不是9
digits[i]++;
return digits;
}
}
//当数组都是9时,才会跳出for循环
int[] arr = new int[digits.length+1];
arr[0] = 1;
return arr;
}
public static void main(String[] args) {
int[] arr = {9,9,9};
System.out.println("原来的数组:");
for(int x : arr) {
System.out.print(x+"\t");
}
System.out.println("\n加一后的数组:");
int[] array = plusOne(arr);
for(int x : array) {
System.out.print(x+"\t");
}
}
}