LeetCode:Plus One - 數字加一

一、題目名稱java

Plus One(數字加一)git

二、題目地址數組

https://leetcode.com/problems/plus-onecode

三、題目內容leetcode

英文:Given a non-negative number represented as an array of digits, plus one to the number. The digits are stored such that the most significant digit is at the head of the list.開發

中文:給出一個由整型數組表示的非負數字,將這個數字加一。數組中的各元素表示該數字的各位,越靠前的元素權越大。get

四、解題方法it

本題的解題思路,就是模擬現實中作加法的方式,在個位加一,並考慮進位的狀況。Java代碼以下:io

/**
 * 功能說明:LeetCode 66 - Plus One
 * 開發人員:Tsybius2014
 * 開發時間:2015年9月17日
 */
public class Solution {
    
    /**
     * 數字加1
     * @param digits 數字
     * @return 數字加一後的值
     */
    public int[] plusOne(int[] digits) {
        
        //數字加一
        boolean carryFlag = false;
        digits[digits.length - 1]++;
        for (int i = digits.length - 1; i >= 0; i--) {
            digits[i] = digits[i] + (carryFlag ? 1 : 0);
            if (digits[i] >= 10) {
                carryFlag = true;
                digits[i] -= 10;
            } else {
                carryFlag = false;
                break;
            }
        }
        
        //判斷是否有溢出位
        if (carryFlag) {
            int[] result = new int[digits.length + 1];
            result[0] = 1;
            for (int i = 1; i < result.length; i++){
                result[i] = digits[i - 1];
            }
            return result;
        } else {
            return digits;
        }
    }
}

ENDclass

相關文章
相關標籤/搜索