LeetCode - 66. Plus One(Array, Math)*

YAMAMAMO·2022년 2월 8일
0

LeetCode

목록 보기
19/100

문제

정수 배열 자릿수로 표시되는 큰 정수가 주어지며, 여기서 각 자리[i]는 정수의 i번째 자리입니다. 숫자는 왼쪽에서 오른쪽 순서로 가장 유의한 것부터 가장 유의하지 않은 것 순으로 정렬됩니다. 큰 정수에는 선행 0이 없습니다.
큰 정수를 1씩 증가시키고 결과 자릿수 배열을 반환합니다.

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.

https://leetcode.com/problems/plus-one/

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].

풀이

자바입니다.

  • 배열을 역순으로 반복합니다.
  • 배열의 값을 1 더합니다.
  • 10보다 작으면 배열을 반환합니다.
  • 아니면 배열의 값을 0으로 변경합니다.
  • 조기에 반환 되지 않으면(자리수가 변했다.) digits의 길이보다 하나 큰 배열을 생성합니다.
    ex)[9,9,9,9] -> [1,0,0,0,0]
  • 0번째 값을 1로 변경합니다.
class Solution {
    public int[] plusOne(int[] digits) {
        for(int i=digits.length-1;i>=0;i--){
            digits[i]++;
            if(digits[i]<10) return digits;
            else digits[i]=0;
        }
        int[] res = new int[digits.length+1];
        res[0]=1;
        return res;
    }
}
profile
안드로이드 개발자

0개의 댓글