Leetcode 1437.是否所有 1 都至少相隔 k 個元素(Check If All 1s Are at Least Length K Places Away)

Leetcode 1437.是否所有 1 都至少相隔 k 個元素

1 題目描述(Leetcode題目鏈接

  給你一個由若干 0 和 1 組成的數組 nums 以及整數 k。如果所有 1 都至少相隔 k 個元素,則返回 True ;否則,返回 False 。
在這裏插入圖片描述

輸入:nums = [1,0,0,0,1,0,0,1], k = 2
輸出:true
解釋:每個 1 都至少相隔 2 個元素。

提示:

  • 1 <= nums.length <= 10^5
  • 0 <= k <= nums.length
  • nums[i] 的值爲 0 或 1

2 題解

  算出兩個相鄰1之間距離的最小值與k比較

class Solution:
    def kLengthApart(self, nums: List[int], k: int) -> bool:
        dis = float("inf")
        if 1 not in nums: return True
        pre = nums.index(1)
        for i in range(nums.index(1) + 1, len(nums)):
            if nums[i] == 1:
                dis = min(dis, i - pre - 1)
                pre = i
        return dis >= k  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章