加一(簡(jiǎn)單)
1. 題目描述
給定一個(gè)由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù)慨蓝,在該數(shù)的基礎(chǔ)上加一。
最高位數(shù)字存放在數(shù)組的首位端幼, 數(shù)組中每個(gè)元素只存儲(chǔ)一個(gè)數(shù)字礼烈。
你可以假設(shè)除了整數(shù) 0 之外,這個(gè)整數(shù)不會(huì)以零開(kāi)頭婆跑。
示例 1
輸入: [1,2,3]
輸出: [1,2,4]
解釋: 輸入數(shù)組表示數(shù)字 123此熬。
示例 2
輸入: [4,3,2,1]
輸出: [4,3,2,2]
解釋: 輸入數(shù)組表示數(shù)字 4321。
2. 個(gè)人解題思路
public static int[] plusOne(int[] digits) {
// 遍歷數(shù)組
for (int i = digits.length - 1; i >= 0; i--) {
// 末位元素 +1 之后對(duì)10取余
digits[i] = ++digits[i] % 10;
// 如果不等于0則直接返回結(jié)果
if (digits[i] != 0){
return digits;
}
}
// 結(jié)束遍歷后沒(méi)返回則需定義一個(gè)長(zhǎng)度+1的新數(shù)組
digits = new int[digits.length + 1];
// 數(shù)組首位元素值為1
digits[0] = 1;
// 返回結(jié)果
return digits;
}
加一(簡(jiǎn)單).png
3. 小結(jié)
- 該題可以遇到的情況有如下三種
- 情況一
- 末位元素 +1 之后對(duì)10取余不為0,則直接返回該數(shù)組即可.
- 情況二
- 元素 +1 之后對(duì)10取余為0,則前進(jìn)一位,在到達(dá)首位元素前滿足條件或首位元素滿足返回條件則返回該數(shù)組.
- 情況三
- 以上兩種情況都不滿足,則代碼該數(shù)組所有元素都為9, +1 之后長(zhǎng)度需要再增加一位,則返回一個(gè)新的數(shù)組,且首位元素為1.
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problem s/plus-one