[LeetCode 66] Plus One

Feb 14, 2020


[LeetCode 66] Plus One

문제 요약

양의 정수가 자릿수 별로 끊어 배열로 주어졌을 때, 이 양의 정수에 1을 더한 결과(마지막 자리에 1을 더한다.)를 똑같이 배열로 반환하는 문제.

풀이

올림수를 고려한 예외처리를 포함하여 구현하였다.

코드

class Solution {
    public int[] plusOne(int[] digits) {
        boolean carry = true;
        for (int i = digits.length - 1; carry && i >= 0; i--) {
            carry = false;
            digits[i]++;
            if (digits[i] == 10) {
                digits[i] = 0;
                carry = true;
            }
        }
        if (carry) {
            int[] ret = new int[digits.length + 1];
            ret[0] = 1;
            for (int i = 1; i < ret.length; i++) ret[i] = digits[i - 1];
            return ret;
        }
        return digits;
    }
}