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

Leetcode(快慢指针习题思路总结,持续更新。。。)

这种模式,有一个非常出门的名字,叫龟兔赛跑。这种算法的两个指针的在数组上(或是链表上,序列上)的移动速度不一样。快的一个指针肯定会追上慢的一个(可以想象成跑道上面跑得快的人套圈跑得慢的人)

讲解题目

给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。
def hasCycle(self, head: ListNode) -> bool:if not head or not head.next:return Falseslow = headfast = head.nextwhile slow != fast:if not fast or not fast.next:return Falseslow = slow.nextfast = fast.next.nextreturn True

习题1

给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
def middleNode(head):slow, fast = head, headwhile fast and fast.next:slow = slow.nextfast = fast.next.nextreturn slow

习题2

编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
如果这个过程 结果为 1,那么这个数就是快乐数。
如果 n 是 快乐数 就返回 true ;不是,则返回 false 。示例 1:输入:n = 19
输出:true
解释:
1 ** 2 + 9 ** 2 = 82
8 ** 2 + 2 ** 2 = 68
6 ** 2 + 8 ** 2 = 100
1 ** 2 + 0 ** 2 + 0 ** 2 = 1示例 2:输入:n = 2
输出:false
def isHappy(self, n: int) -> bool:def get_squre_sum(n):num_sum = 0while n > 0:num = n % 10num_sum += num ** 2n = n // 10return num_sumres = []while n != 1 and n not in res:res.append(n)n = get_squre_sum(n)return n == 1


http://www.mrgr.cn/news/78340.html

相关文章:

  • (11)(2.2) BLHeli32 and BLHeli_S ESCs(二)
  • mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
  • 海康面阵、线阵、读码器及3D相机接线说明
  • 开源 - Ideal库 - Excel帮助类,设计思路(一)
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-36
  • 深圳营销型网站建设打造个性化在线名片的新方式
  • 【halcon】Metrology工具系列之 get_metrology_object_model_contour
  • Leetcode 51 N Queens Leetcode N Queens II
  • Qt程序发布及打包成exe安装包
  • Windows Server 2019 虚拟机 安装Oracle19c,图文详情(超详细)
  • Chrome和edge浏览器如何为任何网站强制暗模式
  • git 学习笔记
  • VTK中对于相机camera的设置
  • 机载视频流回传+编解码方案
  • 分布式调用 - 服务间的远程调用RPC
  • Linux系统硬件老化测试脚本:自动化负载与监控
  • Github 基本使用学习笔记
  • 老旧前端项目如何升级工程化的项目
  • 【大模型】从零样本到少样本学习:一文读懂 Zero-shot、One-shot 和 Few-shot 的核心原理与应用!
  • 【Zookeeper】四,Zookeeper节点类型、通知、仲裁、会话
  • 去哪儿大数据面试题及参考答案
  • 使用Compose Multiplatform开发跨平台的Android调试工具
  • 小程序 - 个人简历
  • VUE练习
  • Vue学习历程一
  • 圆域函数的傅里叶变换和傅里叶逆变换