【LeetCode 66】加一
阿新 • • 發佈:2018-12-22
題目描述:
給定一個由整陣列成的非空陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存一個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
程式碼實現
package com.bupt.wwy; public class Main { public static void main(String[] args) { // write your code here int[] arr = {1, 2, 3}; Solution s = new Solution(); int[] res = s.plusOne(arr); for (int i=0;i<res.length;i++){ System.out.print(res[i]); } } } class Solution{ public int[] plusOne(int[] digits){ boolean flag = true; for (int i=0;i<digits.length;i++){ if (digits[i] != 9){ flag = false; break; }// 只要有一位不為9,那麼陣列的長度就不會改變 } if (flag){ // 陣列元素都為9,陣列長度會增加一位 int[] result = new int[digits.length+1]; result[0] = 1;// 將新陣列的首元素設定為1,其餘位置預設為0 return result; }else { for (int i=digits.length-1;i>=0;i--){ if (digits[i]!=9){ digits[i]+=1; break; }else { digits[i]=0; } } } return digits; } }