배열 대표 숫자 플러스 알고리즘

마이너스 정수 로 구 성 된 비 공 배열 을 지정 하고 이 수 를 바탕 으로 하 나 를 추가 하여 새로운 배열 로 돌아 갑 니 다.가장 높 은 숫자 는 배열 의 첫 번 째 에 저장 되 고 배열 의 모든 요 소 는 하나의 숫자 만 저장 합 니 다.너 는 정수 0 을 제외 하고 이 정 수 는 0 으로 시작 하지 않 을 것 이 라 고 가정 할 수 있다.
예시 1:
입력: [1, 2, 3] 출력: [1, 2, 4] 해석: 입력 배열 은 숫자 123 을 나타 낸다.
예시 2:
입력: [4, 3, 2, 1] 출력: [4, 3, 2, 2] 설명: 입력 배열 은 숫자 4321 을 나타 낸다.
해결 방법
class Solution {
    public int[] plusOne(int[] digits) {
         int index = digits.length - 1;

        while (index != -1 && index != isNeedMoveToLeft(index, digits)) {
            digits[index] = 0;
            index--;
        }
        if (index == -1) {
            int[] tempArray = new int[digits.length + 1];
            tempArray[0] = 1;
            for (int i = 0; i < digits.length; i++) {
                tempArray[i + 1] = digits[i];
            }
            return tempArray;
        } else {
            digits[index] = digits[index] + 1;
        }
        return digits;
    }

    public int isNeedMoveToLeft(int index,int[] digits) {
        if(digits[index] == 9){
            return index - 1;
        }
        return index;
    }
}

좋은 웹페이지 즐겨찾기