*題目:
給定一個非負整數(shù)組成的非空數(shù)組,在該數(shù)的基礎(chǔ)上加一,返回一個新的數(shù)組。
最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個元素只存儲一個數(shù)字。
你可以假設(shè)除了整數(shù) 0 之外,這個整數(shù)不會以零開頭。
示例 1:
輸入: [1,2,3]
輸出: [1,2,4]
解釋: 輸入數(shù)組表示數(shù)字 123。
示例 2:
輸入: [4,3,2,1]
輸出: [4,3,2,2]
解釋: 輸入數(shù)組表示數(shù)字 4321。
- 解決思路
本來以為這題超級簡單的。。結(jié)果還是看了答案解決。。。
思路就是,判斷數(shù)組最后一個元素是小于9,還是等于9;
如果小于9,就直接加1返回結(jié)果,如果大于9,就將當前元素賦值為0,尋找上一位小于9的元素進行加1。
/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function(digits) {
for (let i = digits.length - 1; i >= 0; i--) {
if (digits[i] < 9) {
digits[i] = digits[i] + 1
return digits
} else {
digits[i] = 0
}
}
// 注意:這句unshift是為了測試用例[9]/[9,9,9]這種列出的情況
digits.unshift(1)
return digits
};