• 【力扣练习题】加一


    1. package sim;
    2. import java.math.BigDecimal;
    3. import java.util.Arrays;
    4. public class Add1 {
    5. /*给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
    6. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
    7. 你可以假设除了整数 0 之外,这个整数不会以零开头。
    8. 示例 1:
    9. 输入:digits = [1,2,3]
    10. 输出:[1,2,4]
    11. 解释:输入数组表示数字 123。
    12. 示例 2:
    13. 输入:digits = [4,3,2,1]
    14. 输出:[4,3,2,2]
    15. 解释:输入数组表示数字 4321。
    16. 示例 3:
    17. 输入:digits = [0]
    18. 输出:[1]*/
    19. public static void main(String[] args) {
    20. int[] nums= {9,8,7,6,5,4,3,2,1,0};
    21. int[] nums1=plusOne1(nums);
    22. System.out.println(Arrays.toString(nums1));
    23. }
    24. public static int[] plusOne1(int[] digits) {//[9,8,7,6,5,4,3,2,1,0]
    25. //将该数组所有元素变成一个整数
    26. String str="";
    27. for(int i=0;i
    28. str+=digits[i];
    29. }//str=123
    30. BigDecimal nums=new BigDecimal(str);
    31. BigDecimal one=new BigDecimal(1);
    32. nums=nums.add(one);//加1 ---->9876543211
    33. String arr=String.valueOf(nums);//987654321
    34. //算出应除的位数
    35. BigDecimal yz=new BigDecimal(10);
    36. for(int j=0;j1;j++) {
    37. one=one.multiply(yz);//1000000000
    38. }
    39. //求每一位挨个往数组中存放
    40. int[] res=new int[str.length()];
    41. for(int i=0;i
    42. //BigDecimal的divideAndRemainder方法求余,返回的是一个数组(商,余数)
    43. BigDecimal[] b=nums.divideAndRemainder(one);//dig[0]=1,
    44. res[i]=b[0].intValue();//商即为每位数字
    45. nums=b[1];//余数作为接下来的商
    46. one=one.divide(yz);//除数改变(少一位即除10)
    47. }
    48. return res;
    49. }
    50. }

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

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

  • 相关阅读:
    给一个input元素添加border-radius 但是加完之后 边框变得很粗怎么办
    RPA前景、要求和学习方向
    IDEA小技巧:Markdown里的命令行可以直接运行了
    【3D建模实战】维京海盗盾牌教程
    实体机安装centos7问题总结
    深浅拷贝小整理(对象赋值请注意)
    C语言中的常量、变量及关键字
    MyBatis 插件机制详解
    LitePal在Kotlin中使用的一个小问题
    java毕业设计电子产品专卖电商系统Mybatis+系统+数据库+调试部署
  • 原文地址:https://blog.csdn.net/weixin_62226624/article/details/132775238