11.3 leetcode打卡

141.环形链表

原题链接:141. 环形链表

题目描述

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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TTyCQgyP-1667577287320)(C:\Users\左宗帅\AppData\Roaming\Typora\typora-user-images\image-20221104233956786.png)]

输入:head = [3,2,0,-4], pos = 1
输出:true

解题思路

佛洛依德判圈算法(龟兔赛跑)— 快慢指针

fast指针每次走两步,slow指针每次走一步,如果fast可以走到终点,即该链表中无环,否则fastslow总会相遇,即链表中有环

代码实现

class Solution {
public:bool hasCycle(ListNode *head) {if(!head || !head->next){return false;}ListNode *fast = head;ListNode *slow = head;while(fast && fast->next){fast = fast->next->next;slow = slow->next;if(fast == slow){return true;}}return false;}
};

142.环形链表II

原题链接:142. 环形链表 II

题目描述

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

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

不允许修改 链表。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WiJm5cHW-1667577287324)(C:\Users\左宗帅\AppData\Roaming\Typora\typora-user-images\image-20221104234749651.png)]

输入:head = [3,2,0,-4], pos = 1
输出:返回索引为 1 的链表节点

解题思路

常规思路

仍用快慢指针判断链表中是否有环,若无环直接返回null即可,若链表中有环,则跳出循环,让fast指针重新指向头部,然后此时fastslow指针一起走,直到相遇,相遇节点即为入环节点。(–思路来自左神左程云)

代码实现

class Solution {
public:ListNode *detectCycle(ListNode *head) {if(!head || !head->next){return NULL;}ListNode *fast = head;ListNode *slow = head;while(fast && fast->next){fast = fast->next->next;slow = slow->next;if(slow == fast)  break;}if(!fast || !fast->next){ return NULL; }fast = head;while(slow != fast){fast = fast->next;slow = slow->next;}       return fast;}
};

148.排序链表

原题链接:148. 排序链表

题目描述

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表

输入:head = [4,2,1,3]
输出:[1,2,3,4]

解题思路

常规思路

将链表中数据全部取出,对其进行排序,然后依次放入链表中返回新的头节点即可

代码实现

class Solution {
public:ListNode* sortList(ListNode* head) {vector<int> ans;ListNode *cur = head;ListNode *pre = new ListNode(0);while(cur){ans.push_back(cur->val);cur = cur->next;}cur = pre;sort(ans.begin(), ans.end());for(int i = 0; i < ans.size(); ++ i){cur->next = new ListNode(ans[i]);cur = cur->next;}return pre->next;}
};

11.3 leetcode打卡相关推荐

  1. 11.9 leetcode打卡

    11.9 leetcode打卡 94.二叉树的中序遍历 原题链接:94. 二叉树的中序遍历 题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 . 输入:root = [1,null ...

  2. LeetCode打卡 52八皇后Ⅱ53最大子序和54螺旋矩阵

    原创公众号:bigsai 希望和优秀的你做朋友,感觉不错还请一键三连. 回复进群即可加入和200+人一起打卡.上周打卡: LeetCode 47全排列Ⅱ&48旋转图像 LeetCode 49字 ...

  3. 力扣(LeetCode)打卡刷题交流计划(长期维护)

    前言 忙忙活活暑期过去了一半,在即将升学的日子里,打算干点什么东西,由于实力以及经验的欠缺没有创群和大家讨论,但我更喜欢以更实在的方式--能作点什么--和大家一起从0打开力扣LeetCode, 对,没 ...

  4. S5PV210体系结构与接口11:NandFlash SD卡编程

    目录 1. Flash ROM简介 1.1 概述 1.2 Nor & Nand Flash比较 1.2.1 接口对比 1.2.2 容量和成本对比 1.2.3 可靠性对比 1.2.4 使用寿命对 ...

  5. LeetCode打卡:870.优势洗牌

    给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述. 返回 A 的任意排列,使其相对于 B 的优势最大化. 示例 1: 输入: ...

  6. 数据结构与算法之数组: Leetcode 914. 卡牌分组 (Typescript版)

    卡牌分组 https://leetcode.cn/problems/x-of-a-kind-in-a-deck-of-cards/ 描述 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 ...

  7. LeetCode打卡Day1

    DataWhale学习小组~ Leetcode腾讯精选练习50题 2-两数相加 4-寻找两个正序数组的中位数 5-最长回文子串 Leetcode腾讯精选练习50题 今天是打卡第一天!出师不利23333 ...

  8. LeetCode 914. 卡牌分组(最大公约数)

    1. 题目 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 ...

  9. LeetCode 914. 卡牌分组

    914. 卡牌分组 思路:统计个数,然后求最小公约数 class Solution { public:bool hasGroupsSizeX(vector<int>& deck) ...

  10. 【动态规划 回文串11】LeetCode 516. Longest Palindromic Subsequence

    LeetCode 516. Longest Palindromic Subsequence 本博客转载自:http://www.cnblogs.com/grandyang/p/6493182.html ...

最新文章

  1. 手撕一个spirng IoC的过程
  2. ABP学习 解决:Update-Database : 无法将“Update-Database”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的问题...
  3. 戴维南定律和诺顿定律
  4. ES2017异步函数现已正式可用
  5. ASP.NET MVC 4 (一)路径映射
  6. winxp html5,超级 HTML HTMLEditor —- winXP 风格 [2]
  7. linux内核设计与实现---进程管理
  8. lib60870-IEC 60870-5-101 / 104 协议对总查询的处理
  9. 计算器软件C语言课程设计实验报告,c简单计算器实验报告_相关文章专题_写写帮文库...
  10. 织梦cms第四版仿七猫技术导航源码 附安装教程
  11. BZOJ1061 NOI2008 志愿者招募 线性规划、费用流
  12. [转载]想要成为Linux大神,你应该和我一样这样做!
  13. 迷宫~哈哈~终于懂了BFS
  14. Nginx源码分析 - HTTP模块篇 - HTTP Request解析过程(22)
  15. C++学生信息管理系统2.0
  16. 考研数据结构中的代码如何写——线性表的顺序存储
  17. 仿探探交友小程序V7.0.2 完整安装包+小程序前端
  18. matlab单回路和串级控制回路,单回路和串级控制系统仿真应用研究.doc
  19. 负载均衡下的多台tomcat服务器,通过memcache实现session共享
  20. 忘记Jenkins管理员密码的解决办法

热门文章

  1. FC-SAN存储技术
  2. san分布式共享文件系统_SAN存储区域网络共享软件全攻略
  3. IPA (苹果应用程序文件格式)
  4. MySQL篇之授权用户可以远程访问数据库
  5. Andriod程序的结构
  6. php 5.3.3 + 中 php-fpm 的重启、终止操作命令
  7. PID学习笔记:模拟加热系统的PID控制
  8. 百度网盘微信小程序文件 同步到百度网盘APP或客户端
  9. IOI2017 Day1 Wiring 题解
  10. 【可见光室内定位】(三)基于图像传感器CMOS的可见光室内定位技术