【python-leetcode141-快慢指针】环形链表
时间:2022-07-24
本文章向大家介绍【python-leetcode141-快慢指针】环形链表,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题描述:
给定一个链表,判断链表中是否有环。
为了表示给定链表中的环,我们使用整数 pos
来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos
是 -1
,则在该链表中没有环。
示例 1:
输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。
核心思想:两个指针,一个走得慢,一个走得快,如果是有环的话,这两个指针迟早会相遇,否则快指针走到头了,则没有环。
这里有两种写法,第一种:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def hasCycle(self, head: ListNode) -> bool:
if head == None or head.next == None:
return False
slow = head
fast = head.next
while slow != fast:
if fast == None or fast.next == None:
return False
slow = slow.next
fast = fast.next.next
return True
结果:
第二种方式:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def hasCycle(self, head: ListNode) -> bool:
if head == None or head.next == None:
return False
slow = head
fast = head
while fast and fast.next:
slow = slow.next
fast = fast.next.next
if slow == fast:
return True
return False
效率都好低,去跑了下leetcode排名第一的python算法,也是7.78%,那就不是代码的问题了。
- C++实现神经网络之一 | Net类的设计和神经网络的初始化
- Redis源码分析(一)——Redis数据结构-字符串SDS
- 使用RNN预测股票价格系列二
- 微软 WCF的几种寄宿方式,寄宿IIS、寄宿winform、寄宿控制台、寄宿Windows服务
- 深度学习框架之一:Theano | Lasagne简单教程
- 有趣的应用 | 使用RNN预测股票价格系列一
- 通过深度学习实现安全帽佩戴的检测
- python及numpy,pandas易混淆的点
- 深度学习中的损失函数总结以及Center Loss函数笔记
- TF使用例子-LSTM实现序列标注
- 图像学习-验证码识别
- ResNet原理及其在TF-Slim中的实现
- 理工男的文科梦 —— LSTM深度学习写春联
- keras学习笔记-黑白照片自动着色的神经网络-Alpha版
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- TKE上动态部署jenkins slaves
- CVE-2017-0261及利用样本分析
- 流水的NLP铁打的NER:命名实体识别实践与探索
- Spring Boot入门系列(十七)Mybatis创建自定义mapper 实现多表关联查询!
- 让你笑的七个linux命令
- GPU并行计算之向量和
- ShardingJdbc分库分表实战案例解析(下)
- 分布式链路追踪Skywalking Skywalking 存储客户端设计
- Kubernetes 的新武器:层级命名空间
- 手撕distributed ram类型同步FIFO
- 解决PIL透明的图片放在新图片上报错
- Dissonance 使用(一)
- Dissonance 使用(三)
- 从代码角度看各类子域名收集工具
- Shiro-550 PoC 编写日记