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

Leetcode link

题目简介

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {boolean}
 */

题目给我们一个数组 nums 以及一个数字 k

要求我们遍历数组求出数组是否所有的 1 中间都间隔至少 k 个 0,如果是返回 true,否则返回 false

解题思路

用一个变量记录上一次 1 出现的下标,之后每次出现 1 时只需要判断两个下标的距离就好

Javascript

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {boolean}
 */
var kLengthApart = function (nums, k) {
    let lastIdxOf1 = -1
    let cur = 0
    while (cur < nums.length) {
        if (nums[cur] === 1) {
            if (lastIdxOf1 >= 0 && cur - lastIdxOf1 - 1 < k) {
                return false
            }
            lastIdxOf1 = cur
        }
        cur++
    }
    return true
};

results matching ""

    No results matching ""