Skip to content

Commit bebc4d5

Browse files
author
itning
committed
add
1 parent 1d44a69 commit bebc4d5

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package top.itning.test;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import java.util.Arrays;
6+
7+
/**
8+
* 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
9+
* <p>
10+
* 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
11+
* <p>
12+
* 你可以假设除了整数 0 之外,这个整数不会以零开头。
13+
* <p>
14+
* 来源:力扣(LeetCode)
15+
* 链接:https://leetcode-cn.com/problems/plus-one
16+
* 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
17+
*
18+
* @author itning
19+
* @since 2022/2/14 10:51
20+
*/
21+
public class PlusOneTest {
22+
@Test
23+
void plusOneTest() {
24+
System.out.println(Arrays.toString(plusOne(new int[]{1, 2, 4})));
25+
System.out.println(Arrays.toString(plusOne(new int[]{1, 2, 9})));
26+
System.out.println(Arrays.toString(plusOne(new int[]{9})));
27+
}
28+
29+
public int[] plusOne(int[] digits) {
30+
if (digits.length == 1 && digits[0] == 0) {
31+
digits[0] = 1;
32+
return digits;
33+
}
34+
int less = 0;
35+
for (int i = digits.length - 1; i >= 0; i--) {
36+
if (less != 0) {
37+
less = 0;
38+
}
39+
if (digits[i] + 1 == 10) {
40+
digits[i] = 0;
41+
less = 1;
42+
} else {
43+
digits[i] = digits[i] + 1;
44+
break;
45+
}
46+
}
47+
if (less == 1) {
48+
int[] result = new int[digits.length + 1];
49+
result[0] = 1;
50+
System.arraycopy(digits, 0, result, 1, result.length - 1);
51+
return result;
52+
}
53+
return digits;
54+
}
55+
}

0 commit comments

Comments
 (0)