Skip to content

1437. 是否所有 1 都至少相隔 k 个元素 ​

  • 题号:1437
  • 来源:LeetCode
  • 难度:简单
  • 标签:数组 模拟
  • 语言:TypeScript
  • 解法:1 个
  • 作者:lmliheng
  • 最近更新:2026-09-27

TypeScript · O(n) 时间 · O(1) 空间 · 更新于 2026-09-27

记录相邻两个 1 的下标差是否达 k

typescript
/**
 * @difficulty easy
 * @tags 数组,模拟
 * @time O(n)
 * @space O(1)
 * @note 记录相邻两个 1 的下标差是否达 k
 * @1437. 是否所有 1 都至少相隔 k 个元素
 */

function kLengthApart(nums: number[], k: number): boolean {
    let zero_num: number = 0
    let l: number | undefined
    let r: number | undefined
    for (let i = 0; i < nums.length; i++) {
        if (nums[i] === 1) {
            if (l === undefined) {
                l = i
                continue
            } else if (r === undefined) {
                r = i
                if ((r - l) < k) {
                    return false
                }
                continue
            }

            l = r
            r = i

            if ((r - l - 1) < k) {
                return false
            }
        }
    }
    return true
}

// let a = kLengthApart([1,0,0,1,0,1],2)
console.log(kLengthApart([1,0,0,1,0,1], 2))

export {};

源码:ts/leetcode/1437. 是否所有 1 都至少相隔 k 个元素.ts


在 GitHub 上查看题目所在目录:lmliheng/algorithm