iis asp网站,棋牌网站代理,如何用微信做网站,wordpress 单页模板给定一个由整数组成的非空数组所表示的非负整数如[1,2,3]#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位#xff0c; 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外#xff0c;这个整数不会以零开头。 #xff08;要求只能操作数组#xff0c;不…给定一个由整数组成的非空数组所表示的非负整数如[1,2,3]在该数的基础上加一。 最高位数字存放在数组的首位 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外这个整数不会以零开头。 要求只能操作数组不能转成数字直接加一 示例 1: 输入: [1,2,3] 输出: [1,2,4] 示例 2 输入: [4,3,2,1] 输出: [4,3,2,2] 示例 3 输入[9] 输出[1,0] 示例 4 输入[9,9,9] 输出[1,0,0,0]
三种方法
function addOne(nums) { let carry false; // 进位标志 for (let i nums.length - 1; i 0; i--) { if (carry) { nums[i] (nums[i] 1) % 10; // 加一并取模 carry nums[i] 0; // 判断是否进位 } else if (nums[i] 9) { nums[i] 0; // 当前位为9加一后变为0 carry true; // 设置进位标志 } else { nums[i]; // 当前位小于9直接加一 return nums; // 没有进位直接返回数组 } } if (carry) { nums.unshift(1); // 最高位需要加1插入一个1 } return nums;
}第二种
function plusOne(digits) {let carry 1; // 进位初始为1for (let i digits.length - 1; i 0; i--) {digits[i] carry; // 当前位加上进位carry Math.floor(digits[i] / 10); // 计算新的进位digits[i] % 10; // 取余得到当前位的值}if (carry 0) {digits.unshift(carry); // 如果最高位有进位将进位加到数组的开头}return digits;
}第三种
var plusOne function(digits) {for(let i digits.length-1;i0;i--){if(digits[i]9){digits[i];return digits;}else digits[i]0;}digits.splice(0,0,1)return digits;
};