事態緊急,今天下班好累,我就不多說了
今天題目大意:把一個表示非負整數的陣列 digits 加 1,並把每一行程式碼用超新手友善的方式拆解。\
class Solution {
public int[] plusOne(int[] digits) {
// 從最右邊(個位)開始處理進位
for (int i = digits.length - 1; i >= 0; i--) {
if (digits[i] < 9) {
// 如果當前位小於 9,直接加 1 並回傳結果(沒有更多進位)
digits[i]++;
return digits;
}
// 當前位是 9,加一後變成 0,進位傳到左邊繼續處理
digits[i] = 0;
}
// 如果跑完迴圈還沒回傳,代表所有位都是 9(例如 [9,9,9])
// 需要一個更長的陣列,最高位為 1,其他位預設為 0 -> [1,0,0,0]
int[] res = new int[digits.length + 1];
res[0] = 1;
return res;
}
}