给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。
/** * @param {number[]} digits * @return {number[]} */ var plusOne = function(digits) { let i = digits.length-1; let currentValue = 0; let forwardvalue = 1; while(i>=0&&forwardvalue >0){ currentValue = (digits[i]+forwardvalue)%10; forwardvalue = parseInt((digits[i]+forwardvalue)/10); digits[i] = currentValue; i -- ; } if(forwardvalue>0){ digits.unshift(forwardvalue); } return digits; };
对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。
给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。
示例 1:
输入:A = [1,2,0,0], K = 34
输出:[1,2,3,4]
解释:1200 + 34 = 1234
解释 2:
输入:A = [2,7,4], K = 181
输出:[4,5,5]
解释:274 + 181 = 455
示例 3:
输入:A = [2,1,5], K = 806
输出:[1,0,2,1]
解释:215 + 806 = 1021
示例 4:
输入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
输出:[1,0,0,0,0,0,0,0,0,0,0]
解释:9999999999 + 1 = 10000000000
/** * @param {number[]} A * @param {number} K * @return {number[]} */ var addToArrayForm = function(digits,k) { let i = digits.length-1; let currentValue = 0; let forwardvalue = 0; let add_bit = k ; let next_bit =k; while(i>=0){ add_bit = next_bit % 10; next_bit = parseInt(next_bit/10); currentValue = (digits[i]+forwardvalue+add_bit)%10; forwardvalue = parseInt((digits[i]+forwardvalue+add_bit)/10); digits[i] = currentValue; i -- ; } demo = forwardvalue+next_bit; if((demo)>0){ //循环的将剩余的字符放入到数组中 while(demo>0){ let temp = demo %10; digits.unshift(temp); demo = parseInt(demo/10); } } return digits; };
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/plus-one
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。