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

server/2024/11/28 16:32:42/

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

讲解题目

给你一个链表的头节点 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.ppmy.cn/server/145667.html

相关文章

语义版本控制

注意: 本文内容于 2024-11-27 22:25:05 创建,可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容,请访问原文地址:语义版本控制。感谢您的关注与支持! 由于自己平时喜欢写点小玩意,自然而…

PTC在电池中的作用

一、电池安全性的重要性 在现代电子设备中,电池作为能源储存和供应的核心组件,其性能和安全性一直是关注的重点。尤其是在锂离子电池等高能量密度电池的广泛应用中,电池发生过流、过热、短路等问题可能导致电池失效,甚至引发热失控和火灾等安全事故。因此,如何提高电池的…

富格林:有效追损正确提高出金

富格林指出,随着近几年贵金属行业持续走热,越来越多的投资者开始涌入市场增值财富。由于面对陌生市场的束手无策,不少新手投资者遭遇亏损的同时却不知该如何进行正确追损。事实上,掌握正确的交易方法对于提高出金以及有效追损都有…

平安产险厦门分公司:深化风险减量服务,开展安全驾驶巡回培训

为进一步提升管理货运车辆的企业客户的安全生产能力,增强驾驶员的安全意识与驾驶技能,平安产险厦门分公司秉持“金融为民”初心,积极践行金融工作政治性、人民性,开展“风险减量”专项行动——《风险减量,安全驾驶》巡…

YOLOv11融合[ECCV 2018]RCAN中的RCAB模块及相关改进思路

YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《Image Super-Resolution Using Very Deep Residual Channel Attention Networks》 一、 模块介绍 论文链接:https://arxiv.org/abs/1807…

论文阅读《Dual Personalization on Federated Recommendation》

论文概况 本文是2024 IJCAI的一篇联邦推荐论文,提出了提出了一种新的双重个性化机制,以有效地学习用户和项目的细粒度个性化。 Introduction 我们设计了一种新的双重个性化机制,通过个性化评分功能和细粒度的项目嵌入个性化来捕获用户偏好。…

Java基础面试题05:简述快速失败(fail-fast)和安全失败(fail-safe)的区别 ?

在 Java 集合中,fail-fast 和 fail-safe 是两种不同的遍历机制,用来定义在遍历集合时是否允许修改集合内容。它们的区别在于: fail-fast:不允许在遍历过程中修改集合,一旦发现修改,立刻抛出异常。fail-saf…

「实战应用」如何用图表控件LightningChart .NET实现散点图?(一)

LightningChart .NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科…