Java刷題隨筆---066--加一
阿新 • • 發佈:2021-12-20
難度:簡單
題目描述:給定一個由 整數 組成的 非空 陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存單個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
分析:
本題主要分為兩種情況: 1- 陣列中沒有9 ---> 則在最後一位直接加一,例如:[1,2,3,4] ---> [1,2,3,5] 2- 陣列中有9,同時也分為兩種情況: 2.1- 陣列中的9並不會導致最後陣列長度增加,例如: [1,2,3,9] ---> [1,2,4,0] 2.2- 陣列中的9會導致最後陣列長度增加,例如: [9,9] ---> [1,0,0]
解題:
位數為9則變為0即可,不是9則加一即可。
class Solution { public int[] plusOne(int[] digits) { int n = digits.length; for (int i = n - 1; i >= 0; i--) { if (digits[i] != 9) { digits[i]++; for (int j = i + 1; j < n; j++) { digits[j] = 0; } return digits; } } int[] result = new int[n + 1]; result[0] = 1; return result; } }