[Leetcode] 1437. Check If All 1's Are at Least Length K Places Away

RexiaN·2025년 11월 17일

여행을 다녀와서 다시 1일 1알고리즘을 재개.

오늘은 모든 1 사이의 간격이 k 이상 떨어져있는지 확인하는 문제. 어쨌든 배열을 한 번은 전부 돌아야한다. 그리디하게 풀어서 바로 통과.

function kLengthApart(nums: number[], k: number): boolean {
    if (k === 0) {
        return true;
    }

    let count = 0;
    let init = false;

    for (let i = 0; i < nums.length; i++) {
        const target = nums[i];

        if (target === 1) {
            if (!init) {
                init = true
                count = 0;
                continue;
            }

            if (count < k) {
                return false;
            }

            count = 0;
        } else {
            count += 1;
        }
    }

    return true;
};

profile
Don't forget Rule No.1

0개의 댓글