数组元素加一
要求:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。假设除了整数 0 之外,这个整数不会以零开头。
示例:
1、
输入:digits[1,2,3]
输出:[1,2,4]
2、
输入:digits[9,9,9]
输出:[1,0,0,0]
3、
输入:digits[0]
输出:[1]
思路:
分三种情况讨论
1、元素没有9,比如[1,2,3]等等
2、元素中存在9,但不全是,比如[1,2,9]、[4,9,5]等等
3、元素全为9,比如[9]、[9,9]、[9,9,9]等等
import java.util.Arrays;
import java.util.Scanner;
/**
* @author lihao
* @Date 2022/4/13 20:44
*/
public class Solution {
public static void main(String[] args) {
System.out.println("请选择添加的数组元素的个数:");
Scanner scan = new Scanner(System.in);
int n=scan.nextInt();
int[] arr=new int[n];
for (int i = 0; i <arr.length; i++) {
System.out.println("添加"+(i+1)+"个元素:");
arr[i]=scan.nextInt();
}
//输出结果
System.out.println(Arrays.toString(plusOne(arr)));
}
public static int[] plusOne(int[] digits){
int len=digits.length;
for (int i = len-1; i >=0 ; i--) {
//当元素中存在9,但不全是,将当前位置0,继续遍历下一位
if(digits[i]==9){
digits[i]=0;
}else{
//当元素中不存在9,当前位+1,其余位不再发生变化,返回结果即可
digits[i]+=1;
return digits;
}
}
//元素全为9时,增加数组长度,并将最高位置1
int[] res=new int[len+1];
res[0]=1;
return res;
}
}