66.加一

时游小于 1 分钟LeetCode

66.加一

/*
 * @lc app=leetcode.cn id=66 lang=typescript
 *
 * [66] 加一
 */

// @lc code=start
// function plusOne(digits: number[]): number[] {
// 	// +1 有缺陷,会存在越界数据,导致错误
// 	let num = Number(digits.join("")) + 1;
// 	let nums = String(num)
// 		.split("")
// 		.map(el => Number(el));
// 	return nums;
// }


// 递归实现法
function plusOne(digits: number[]): number[] {
	let res = recursion(digits, digits.length - 1);
	return res;
}

function recursion(arr: number[], index: number): number[] {
	if (arr[index] + 1 === 10) {
		arr[index] = 0;
		return recursion(arr, index - 1);
	} else {
		if (index == -1) {
			arr[0] = 0;
			arr.unshift(1);
		} else {
			arr[index] += 1;
		}
		return arr;
	}
}
// @lc code=end

上次编辑于:
贡献者: 15327360835
Loading...