LeetCode-066-加一

加一

題目描述:給定一個(gè)由 整數(shù) 組成的 非空 數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。

最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個(gè)元素只存儲(chǔ)單個(gè)數(shù)字。

你可以假設(shè)除了整數(shù) 0 之外,這個(gè)整數(shù)不會(huì)以零開頭。

示例說明請(qǐng)見LeetCode官網(wǎng)。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/plus-one/
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

解法一:遍歷數(shù)組

初始化一個(gè)進(jìn)位的值addOne為1,從數(shù)組digits的最后一位往前開始遍歷:

  • 把當(dāng)前位置的值和addOne相加;
  • 如果相加結(jié)果為10,則產(chǎn)生進(jìn)位,addOne設(shè)置為1,并且當(dāng)前為值的值設(shè)置為0;
  • 如果相加結(jié)果小于10,則不會(huì)產(chǎn)生進(jìn)位,addOne設(shè)置為0,并且當(dāng)前為值的值設(shè)置為相加結(jié)果;
  • 直到遍歷結(jié)束。

遍歷結(jié)束后,如果addOne為0,則直接返回digits;如果addOne為1,則把1放在digits的第一位,然后返回。

import java.util.Arrays;

public class LeetCode_066 {
    public static int[] plusOne(int[] digits) {
        int addOne = 1;
        for (int i = digits.length - 1; i >= 0; i--) {
            if (addOne + digits[i] == 10) {
                addOne = 1;
                digits[i] = 0;
            } else {
                digits[i] = addOne + digits[i];
                addOne = 0;
            }
        }
        if (addOne == 1) {
            int[] result = new int[digits.length + 1];
            result[0] = addOne;
            for (int i = 0; i < digits.length; i++) {
                result[i + 1] = digits[i];
            }
            return result;
        } else {
            return digits;
        }
    }

    public static void main(String[] args) {
        int[] digits = new int[]{4, 3, 2, 1};
        Arrays.stream(plusOne(digits)).forEach(digit -> {
            System.out.print(digit + " ");
        });
    }
}

【每日寄語】 清晨,帶著一顆雀躍的心醒來,感謝又一個(gè)充滿愛的日子。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 給定一個(gè)由 整數(shù) 組成的 非空 數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。 最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每...
    刻苦驢噥閱讀 162評(píng)論 0 0
  • 題目:兩數(shù)相加 給出兩個(gè)非空的鏈表用來表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲(chǔ)的,并且它們...
    光劍書架上的書閱讀 406評(píng)論 0 3
  • 從尾到頭打印鏈表輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過來返回每個(gè)節(jié)點(diǎn)的值(用數(shù)組返回)。示例 1:輸入:head = ...
    拼搏男孩閱讀 666評(píng)論 0 0
  • 1. 兩數(shù)之和[https://leetcode-cn.com/problems/two-sum/] 給定一個(gè)整數(shù)...
    靚點(diǎn)迷人閱讀 602評(píng)論 0 0
  • 最近正在找實(shí)習(xí),發(fā)現(xiàn)自己的算法實(shí)在是不能再渣渣,在網(wǎng)上查了一下,發(fā)現(xiàn)大家都在刷leetcode的題,于是乎本渣渣也...
    caoxian閱讀 1,014評(píng)論 0 2

友情鏈接更多精彩內(nèi)容