首页 > 编程语言 >9.27算法

9.27算法

时间:2023-09-27 10:13:37浏览次数:49  
标签:head 9.27 pos fast next 链表 算法 false

环形链表
给你一个链表的头节点 head ,判断链表中是否有环。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。

如果链表中存在环 ,则返回 true 。 否则,返回 false 。

 

示例 1:

 

输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到第二个节点。
示例 2:

 

输入:head = [1,2], pos = 0
输出:true
解释:链表中有一个环,其尾部连接到第一个节点。
示例 3:

 

输入:head = [1], pos = -1
输出:false

bool hasCycle(ListNode *head) {     if(head == nullptr){         return false;     }     ListNode *slow = head;     ListNode *fast = head;     while(fast != nullptr && fast->next != nullptr){         slow = slow->next;         fast = fast->next->next;         if(slow == fast){             return true;         }     }     return false; }   关键在于需要不出现空指针,快的比慢的多走一步就行,然后确定什么时候不是空的指针,避免空指针异常

标签:head,9.27,pos,fast,next,链表,算法,false
From: https://www.cnblogs.com/minipython-wldx/p/17732011.html

相关文章

  • 算法思想
    贪心算法(GreedyAlgorithm):贪心算法是一种每步都选择当前状态下最优解的方法,希望最终可以得到全局最优解。它通常用于优化问题,如最小生成树、最短路径等。分治法(DivideandConquer):分治法将大问题分割成小问题,解决小问题,然后将它们合并以获得原始问题的解决方案。典型的例......
  • SpringBoot | 加密算法使用示例
    欢迎参观我的博客,一个Vue与SpringBoot结合的产物:https://poetize.cn博客:https://gitee.com/littledokey/poetize-vue2.git聊天室:https://gitee.com/littledokey/poetize-im-vue3.git后端:https://gitee.com/littledokey/poetize.git七牛云登录/注册地址(文件服务器,CDN):https:/......
  • KMP算法
    KMP算法可以看做是对暴力求解的一种改进,在前面的暴力算法中,i指针和j指针都是要回溯的,这是不合理的,因为当发现不匹配的时候,已经扫描到的区域我们其实是已知的,如下图所示当我们发现不匹配后,我们其实已经知道了主串的第1到第5个字符是什么,其实就是模式串前面的字符,KMP算法就是将这......
  • 手写数字数据集AutoEncoder降噪算法
    对训练数据加噪声的方法,在训练里面对x做如下处理,添加椒盐噪声:bs,ch,h,w=x.shapex=x.reshape(bs,ch,h*w)+0.2*np.random.normal(size=28*28)x=x.to(torch.float32)数据集里面的标签label无用,因为AutoEncoder去噪是无监督方法。......
  • 2023年最新京东app端sign签名算法与cipher加解密逆向分析(2023-09-26)
    前言:  本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,若有侵权请联系我删除!技术交流合作请私信!一.工具的选择(抓包工具的选择,是门学问)用到工具如下:1、安卓手机一台,系统版本:android6.01;型号:小米MI4LTE  之所以要选择android6手机,原理如下:  ......
  • 文心一言 VS 讯飞星火 VS chatgpt (101)-- 算法导论9.3 7题
    七、用go语言,设计一个O(n)时间的算法,对于一个给定的包含n个互异元素的集合S和一个正整数k≤n,该算法能够确定S中最接近中位数的k个元素。文心一言:要设计一个O(n)时间的算法来找到集合S中最接近中位数的k个元素,我们可以使用快速选择算法(QuickSelect)。该算法基于快速排......
  • 文心一言 VS 讯飞星火 VS chatgpt (101)-- 算法导论9.3 7题
    七、用go语言,设计一个O(n)时间的算法,对于一个给定的包含n个互异元素的集合S和一个正整数k≤n,该算法能够确定S中最接近中位数的k个元素。文心一言:要设计一个O(n)时间的算法来找到集合S中最接近中位数的k个元素,我们可以使用快速选择算法(QuickSelect)。该算法基于快速排序的......
  • 本地测试Spark的svm算法
    上一篇介绍了逻辑回归算法,发现分类效果不好,通过这次的svm发现是因为训练数据不行,于是网上找了部分训练数据,发现实际上分类效果还可以。    训练数据,第一个值是标签,下面的数据是某种花的相关特征。1|5.1,3.5,1.4,0.21|4.9,3,1.4,0.21|4.7,3.2,1.3,0.21|4.6,3.1,1.5,0.21......
  • 较难理解的字符串查找算法KMP
    时间复杂度O(n)的子串查找算法。经典实例主字符串(s):abcabcabd模式串(t):abcabd比较次数   主字符串   模式串   备注一   abcabcabd   abcabd   红色和绿色表示正在比较的子串,红色表示不同部分,绿色表示相同部分。二   abcabcabd   abcabd  ......
  • 9.26算法
    /** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode() : val(0), next(nullptr) {} *     ListNode(int x) : val(x), next(nullptr) {} *     ListN......