【力扣练习题】加一

package sim;

import java.math.BigDecimal;
import java.util.Arrays;

public class Add1 {
	/*给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
	最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
	你可以假设除了整数 0 之外,这个整数不会以零开头。
	示例 1:

	输入:digits = [1,2,3]
	输出:[1,2,4]
	解释:输入数组表示数字 123。
	示例 2:
	
	输入:digits = [4,3,2,1]
	输出:[4,3,2,2]
	解释:输入数组表示数字 4321。
	示例 3:
	
	输入:digits = [0]
	输出:[1]*/
	public static void main(String[] args) {
		int[] nums= {9,8,7,6,5,4,3,2,1,0};
		int[] nums1=plusOne1(nums);
		System.out.println(Arrays.toString(nums1));
	}
	
	 
	 public static int[] plusOne1(int[] digits) {//[9,8,7,6,5,4,3,2,1,0]
	       //将该数组所有元素变成一个整数
			String str="";
			for(int i=0;i9876543211
			String arr=String.valueOf(nums);//987654321
			//算出应除的位数
			BigDecimal yz=new BigDecimal(10);
			for(int j=0;j

        这里将字符串转成int类型时,不要直接用int接收,因为可能会存在超出int范围(-2147483648~2147483647),可以采用BigDecimal来接收,就不会报“Exception in thread "main" java.lang.NumberFormatException: For input string: "98765432101"
    at java.lang.NumberFormatException.forInputString(Unknown Source)”这个错误了。

以上是我的解题思路,还有别的其他思路,欢迎诸君共同探讨。

你可能感兴趣的:(leetcode,算法,java)