{"title":"给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。\n\n最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。\n\n你可以假设除了整数 0 之外,这个整数不会以零开头\nJava思路内容:首先,我们需要从数组的最后一位开始遍历,将当前位的值加1。如果当前位的值小于9,说明加1后不会产生进位,直接返回数组即可。否则,将当前位的值设为0,并继续遍历前一位。\n\n如果遍历完整个数组后,仍然没有返回结果,说明最高位产生了进位,需要在数组的最前面插入一个新的元素1。\n\n具体实现如下:\n\njava\npublic int[] plusOne(int[] digits) {\n int n = digits.length;\n for (int i = n - 1; i >= 0; i--) {\n if (digits[i] < 9) {\n digits[i]++;\n return digits;\n }\n digits[i] = 0;\n }\n int[] newDigits = new int[n + 1];\n newDigits[0] = 1;\n return newDigits;\n}\n\n\n时间复杂度分析:\n遍历数组的时间复杂度为O(n),其中n为数组的长度。所以总的时间复杂度为O(n)。

Java实现数组加一:算法思路和代码详解

原文地址: https://www.cveoy.top/t/topic/p9wo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录