[LeetCode 66] Plus One
LeetCode 66 (Java)
[Plus One] 문제 풀이
[LeetCode 66] Plus One
Description
You are given a large integer represented as an integer array digits, where each digits[i] is the ith digit of the integer. The digits are ordered from most significant to least significant in left-to-right order. The large integer does not contain any leading 0’s.
Increment the large integer by one and return the resulting array of digits.
Example 1
- Input: digits = [1,2,3]
- Output: [1,2,4]
- Explanation:
- The array represents the integer 123.
- Incrementing by one gives 123 + 1 = 124.
- Thus, the result should be [1,2,4].
Example 2
- Input: digits = [4,3,2,1]
- Output: [4,3,2,2]
- Explanation:
- The array represents the integer 4321.
- Incrementing by one gives 4321 + 1 = 4322.
- Thus, the result should be [4,3,2,2].
Example 3
- Input: digits = [9]
- Output: [1,0]
- Explanation:
- The array represents the integer 9.
- Incrementing by one gives 9 + 1 = 10.
- Thus, the result should be [1,0].
Constraints
1 <= digits.length <= 1000 <= digits[i] <= 9digitsdoes not contain any leading0’s.
Code
내 제출
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.io.*;
import java.util.*;
class Solution {
public int[] plusOne(int[] digits) {
int n = digits.length; // testcase 길이
for (int i = n - 1; i >= 0; --i) {
++digits[i];
digits[i] %= 10;
if (digits[i] != 0) { // 마지막 인덱스가 9가 아닌 경우
return digits;
}
}
// 마지막 인덱스가 9인 경우
digits = new int[n + 1];
digits[0] = 1;
return digits;
}
}
| Runtime | Memory |
|---|---|
| 0 ms | 42 MB |
다른 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Solution {
public int[] plusOne(int[] digits) {
List<Integer> ans = new ArrayList<>();
int carry = 1;
for(int i=digits.length-1;i>=0;i--){
int sum = digits[i]+carry;
ans.add(sum%10);
carry = sum/10;
}
if(carry>0){
ans.add(carry);
}
Collections.reverse(ans);
int[] finA = new int[ans.size()];
int st = 0;
for(int num:ans){
finA[st++] = num;
}
return finA;
}
}
Reference
- https://github.com/doocs/leetcode/blob/main/solution/0000-0099/0066.Plus%20One/Solution.java
This post is licensed under CC BY 4.0 by the author.
