Skip to content

Commit 0e15168

Browse files
author
王鹏
committed
feat(EASY): add _66_plusOne
1 parent 65f62a4 commit 0e15168

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package pp.arithmetic.leetcode;
2+
3+
import pp.arithmetic.Util;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
/**
9+
* Created by wangpeng on 2019-10-19.
10+
* 66. 加一
11+
* <p>
12+
* 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
13+
* <p>
14+
* 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
15+
* <p>
16+
* 你可以假设除了整数 0 之外,这个整数不会以零开头。
17+
* <p>
18+
* 示例 1:
19+
* <p>
20+
* 输入: [1,2,3]
21+
* 输出: [1,2,4]
22+
* 解释: 输入数组表示数字 123。
23+
* 示例 2:
24+
* <p>
25+
* 输入: [4,3,2,1]
26+
* 输出: [4,3,2,2]
27+
* 解释: 输入数组表示数字 4321。
28+
* <p>
29+
* 来源:力扣(LeetCode)
30+
* 链接:https://leetcode-cn.com/problems/plus-one
31+
* 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
32+
*/
33+
public class _66_plusOne {
34+
35+
public static void main(String[] args) {
36+
_66_plusOne plusOne = new _66_plusOne();
37+
Util.printArray(plusOne.plusOne(new int[]{1, 2, 3}));
38+
Util.printArray(plusOne.plusOne(new int[]{4, 3, 2, 1}));
39+
Util.printArray(plusOne.plusOne(new int[]{9, 9, 9}));
40+
Util.printArray(plusOne.plusOne(new int[]{0}));
41+
Util.printArray(plusOne.plusOne(new int[]{9}));
42+
}
43+
44+
/**
45+
* 解题思路:
46+
* 一道算数加法+1,需要注意两种情况:
47+
* 1、低位向高位进位 ==> 从末尾开始遍历
48+
* 2、整数头需要进位 ==> 构建一个新数组保存返回结果
49+
*
50+
* @param digits
51+
* @return
52+
*/
53+
public int[] plusOne(int[] digits) {
54+
List<Integer> retList = new ArrayList<>();
55+
int highAdd = 1; //进位
56+
for (int i = digits.length - 1; i >= 0; i--) {
57+
int newDigit = digits[i] + highAdd;
58+
highAdd = newDigit / 10;
59+
newDigit = newDigit % 10;
60+
retList.add(0, newDigit);
61+
}
62+
if (highAdd > 0) retList.add(0, highAdd);
63+
//listToArr
64+
int[] retArr = new int[retList.size()];
65+
for (int i = 0; i < retList.size(); i++) {
66+
retArr[i] = retList.get(i);
67+
}
68+
69+
return retArr;
70+
}
71+
}

0 commit comments

Comments
 (0)