当前位置: 首页 > news >正文

python题目练习 是否所有1都至少相隔k个元素 简单类型

大家不要骂我 为什么一直写简单题 因为我在同时做好几件事情 而且非常不顺利 给我气坏了

给你一个由若干 0 和 1 组成的数组 nums 以及整数 k。如果所有 1 都至少相隔 k 个元素,则返回 true ;否则,返回 false 。

简单啊简单 直接写代码 给大家分享我的解题思路 就是如果遇到1的话 就将count设置为0 如果遇到0的话就将count+=1 count就是用来计算中间隔的0的个数是不是满足 但是我在遇到第二个1的时候 我需要看 count计数有没有达到k 但是在遇到第一个1的时候是不用考虑这样的形式的 所以我需要设置一个falg 在为false的时候只是设置count=0即可 然后设置falg为ture 这表示我现在遇到的是第一个1 我不应该0的计数问题  然后在遇到下一个1的时候 我就应该考虑计数问题了 代码如下

class Solution(object):def kLengthApart(self, nums, k):i=0count=0flag=Falsewhile i<len(nums):if nums[i]==1:if flag==False:count=0flag=Trueelse:if count>=k:count=0else:return Falseif nums[i]==0:count+=1i+=1return  Truesolution=Solution()
result=solution.kLengthApart( [1,0,0,1,0,1], 2)
print(result)

我看其他大佬写的很妙啊 虽然是简单题 但是真的可以看出人和人之间的差别 看一下这个

class Solution(object):def kLengthApart(self, nums, k):zeros = kfor num in nums:if num == 1:if zeros < k:return Falsezeros = 0else:zeros += 1return True

真的很厉害!先将zeros 指名就是计算0的个数 设置为k 遇到一个1 如果为大于等于k那么就设置zeros为0 遇到0就+=1 那么这样既可以避免遇到第一个1的问题 也可以解决后面的1的情况 太厉害了 大家把这个方法记住啊 很牛很牛

然后再看一个可能我们不太能接受的例子:

class Solution(object):def kLengthApart(self, nums, k):""":type nums: List[int]:type k: int:rtype: bool"""start = Nonefor idx, num in enumerate(nums):if num == 1:if start is None:start = idxelse:dis = idx - start - 1if dis < k:return Falsestart = idxreturn True# print(Solution().kLengthApart([1, 0, 0, 0, 1, 0, 0, 1], 2))
# print(Solution().kLengthApart([1, 0, 0, 1, 0, 1], 2))

代码的意思是我们只看1 如果是第一次遇到这个1 那么设置start=idx 这个算是固定住 然后如果是遇到下面的1 那么就计算之间的距离 如果不够 return false  如果够了 那么就设置start=idx 继续下一次的验证

好了 如果你喜欢这个帖子 欢迎点赞收藏

http://www.xdnf.cn/news/1286623.html

相关文章:

  • 开博尔DA5耳放小尾巴体验评测:实体按键给到位,便携HiFi上手挺好用的
  • 25C机场航班调度程序(JS 100)
  • Ansible 基础到实操笔记
  • MySQL数据库操作全指南:数据库命令、表命令与数据CRUD操作
  • 飞算 JavaAI -智慧城市项目实践:从交通协同到应急响应的全链路技术革新
  • vue excel转json功能 xlsx
  • 正则表达式解析(二)
  • Python 标准库模块shutil
  • 升级 Docker,避免执行 docker compose 时报错
  • Java 大视界 -- Java 大数据在智能教育学习效果评估指标体系构建与精准评估中的应用(394)
  • 实现一个二维码让 iOS 和 Android 用户自动跳转到对应下载链接
  • MySQL——MySQL引擎层BufferPool工作过程原理
  • 3 Abp 核心框架(Core Framework)
  • 京东方 DV133FHM-NN1 FHD13.3寸 工业液晶模组技术档案
  • 在Colab上复现LoRA相关论文实验的完整指南
  • 跨设备开发不再难:HarmonyOS 分布式任务管理应用全解析
  • 人机交互:连接人类与数字世界的桥梁
  • 基于柔性管控终端的新能源汽车充电站有序充电系统设计与实现
  • Docker容器部署论坛和网上商城(小白的“升级打怪”成长之路)
  • 1 JQ6500语音播报模块详解(STM32)
  • 电机极数2极、4极、6极、8极的区别
  • 电子电路原理学习笔记---第5章特殊用途二极管---第2天
  • PaddlePaddle 模型训练技巧
  • Myqsl建立库表练习
  • Spark on K8s 在vivo大数据平台的混部实战
  • Go 语言 里 `var`、`make`、`new`、`:=` 的区别
  • 深入解析ArrayList与LinkedList的区别:如何正确选择?
  • 游戏中角色持枪:玩家操控角色,角色转向时枪也要转向
  • Java集合学习之forEach()遍历方法的底层原理
  • 【Unity3D实例-功能-下蹲】角色下蹲(二)穿越隧道