我們繼續透過 LeetCode #66 Plus One 來實際感受解決問題的過程 ( 題目連結 )
使用哪種資料結構:Array
(1) 使用迴圈遍歷 digits
(2) 檢查 digits[i] 是否需要進位
let len be the length of digits
digits[len-1] += 1
for i ( len-1 to 0 by -1 ) do
if ( digits[i] < 9 ) then
return digits
else
if ( i != 0 ) then
set digits[i] = 0
digits[i-1] += 1
end if
if ( i = 0 ) then
set digits[i] = 0
add one element = 1 to the beginning of digits
return digits
end if
end if
end for
return digits
let len = digits.length
digits[len-1] += 1
for ( let i=len-1 ; i>=0 ; i-- ) {
if (digits[i] <= 9) {
return digits
} else {
if ( i !== 0) {
digits[i] = 0
digits[i-1] += 1
} else {
digits[i] = 0
digits.unshift(1)
return digits
}
}
}
return digits
原文連結:LeetCode:Plus One ( 用 JavaScript 學演算法 ) - Ted's Point 泰德觀點