[LeetCode] 플러스 원 플러스 원

1455 단어 Leetcode
마이너스 정수 로 구 성 된 비 공 배열 을 지정 하여 정수 에 하 나 를 더 합 니 다.정수 가 숫자 0 자 체 를 제외 하고 어떠한 전도 0 도 포함 하지 않 는 다 고 가정 할 수 있다.가장 높 은 숫자 는 목록 의 첫 번 째 에 저 장 됩 니 다.
사고: 한 숫자의 모든 비트 에 있 는 숫자 를 각각 1 차원 벡터 에 저장 하고 가장 높 은 위 치 는 맨 처음에 있 습 니 다. 우 리 는 이 숫자 에 하 나 를 더 해 야 합 니 다. 즉, 끝 숫자 에 하 나 를 더 해 야 합 니 다. 만약 에 끝 숫자 가 9 이면 진입 문제 가 있 을 것 입 니 다. 만약 에 앞 자리 에 있 는 숫자 가 9 이면 계속 앞으로 나 아가 야 합 니 다.구체 적 인 알고리즘 은 다음 과 같다. 먼저 마지막 자리 가 9 인지 아 닌 지 를 판단 하고 그렇지 않 으 면 직접 한 번 더 되 돌려 준다. 만약 에 이 자리 에 0 을 부여 하고 앞 자 리 를 계속 찾 아 보 자. 똑 같은 방법 으로 첫 번 째 자 리 를 찾 아 보 자.1 위 가 원래 9 였 는데 1 을 더 하면 새로운 사람 이 생 긴 다 면 마지막 으로 해 야 할 일 은 연산 이 끝 난 1 위 가 0 인지, 그렇다면 맨 앞 에 1 을 더 하 는 것 이다.
/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {
    let n = digits.length;
    for (let i = digits.length - 1; i >= 0; --i) {
        if (digits[i] < 9) {
            ++digits[i];
            return digits;
        }
        digits[i] = 0;
    }
    let res = [1];
    res = res.concat(digits)
    return res;
};

좋은 웹페이지 즐겨찾기