快慢指针

2024/4/11 21:17:54

leetcode每日一道(9):判断给定的链表中是否有环

题目描述 判断给定的链表中是否有环 扩展: 你能给出不利用额外空间的解法么? 思路 快慢指针 代码 class Solution { public:bool hasCycle(ListNode *head) {if (!head)return 0;auto fast head, slow head;while(fast&&fast->next){fas…

【面试经典150 | 链表】循环链表

文章目录 Tag题目来源题目解读解题思路方法一:哈希集合方法二:快慢指针方法三:计数 拓展其他语言python3 写在最后 Tag 【快慢指针】【哈希集合】【计数】【链表】 题目来源 141. 环形链表 题目解读 判断一个链表中是否存在环。 解题思路 …

【LeetCode每日一题】——141.环形链表

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【题目进阶】九【时间频度】十【代码实现】十一【提交结果】一【题目类别】 链表 二【题目难度】 简单 三【题目编号】 141.环形链表 四【题目描述】 给…

LeetCode 287. Find the Duplicate Number

原题目:https://leetcode-cn.com/problems/find-the-duplicate-number/ 思路: 我们对 nums[] 数组建图,每个位置 i 连一条 i -》nums[i] 的边。 使用快慢指针,慢指针走一步,快指针走两步,因为有重复的数字…

leetcode每日一道(8):神仙思路!对于一个给定的链表,求环的入口节点

文章目录1. 题目描述2. 一般思路3. 神奇思路4. 代码4.1 普通思路4.2 神仙思路1. 题目描述 对于一个给定的链表,返回环的入口节点,如果没有环,返回null 拓展: 你能给出不利用额外空间的解法么? 2. 一般思路 当然这个题…

leetcode每日一道(7):搞懂链表复杂重排序问题(快慢指针、链表翻转、链表合并)

题目 将给定的单链表L: L 0→L 1→…→L n-1→L n, 重新排序为: L 0→L n →L 1→L n-1→L 2→L n-2→… 要求使用原地算法,并且不改变节点的值 例如: 对于给定的单链表{1,2,3,4},将其重新排序为{1,4,2,3}. 思路分析…

算法刷题总结 (七) 双指针

算法总结7 双指针一、双指针的概念1.1、什么是双指针?1.2、常见类型1.2.1、快慢指针1.2.2、左右端点指针1.2.3、区间指针 - 滑动窗口汇总二、经典例题2.1、快慢指针(1)、链表判环141. 环形链表142. 环形链表 II287. 寻找重复数876. 链表的中间…

Leetcode—剑指OfferII LCR 022.环形链表II【中等】

2023每日刷题(三十三) Leetcode—LCR 022.环形链表II 算法思想 参考k神的博客 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode *detectCycle(struct List…

Leetcode—141.环形链表【简单】

2023每日刷题(三十三) Leetcode—141.环形链表 快慢指针算法思想 关于快慢指针为什么能检测出环,可以这么思考。 假设存在一个环: 慢指针进入环后,快指针和慢指针之间相距为d,每一次移动,d都会缩小1&…

【LeetCode刷题笔记】双指针

剑指 Offer 21.调整数组顺序使奇数位于偶数前面 解题思路: 对撞指针 , 从左边不停的找第一个偶数,从右边不停的找第一个奇数 ,找到后 交换 两者位置 本题与【905. 按奇偶排序数组】几乎雷同。 剑指 Offer 57.和为s的两个数字 本题…

LeetCode 19. Remove Nth Node From End of List

原题目:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 思路: 快慢指针,快指针先走n步,然后一起走。 代码: class Solution { public:ListNode* removeNthFromEnd(ListNode* head, int n) {Li…

【Leetcode】202.快乐数

一、题目 1、题目描述 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐…

Leetcode—202.快乐数【简单】

2023每日刷题(二十八) Leetcode—202.快乐数 快慢指针思想 通过手玩2,可以发现 会走入一个循环,并且fast和slow会在一个数字相遇,以下也大概花了一下推倒出来了。如果slow不是因为1和fast相等的,就说明它…

力扣(LeetCode)142. 环形链表 II(C++)

哈希表 最直观的思想&#xff0c;哈希表记录遍历的结点&#xff0c;如果结点重复出现&#xff0c;则有环。如果遍历到空结点&#xff0c;无环。 class Solution { public:ListNode *detectCycle(ListNode *head) {unordered_set<ListNode *> ad;auto tail head;while(…

(java)leetcode 26.删除排序数组中的重复项

题目思路&#xff1a; 本题目的考点是快慢指针&#xff0c;做出来很简单&#xff0c;但是额外要求了空间复杂度为O(1)&#xff0c;所以我们首选快慢指针&#xff0c;因为数组已经被排好了&#xff0c;所以我们准备好快指针&#xff0c;从下标1开始遍历和慢指针从0开始遍历&…

【面试经典150 | 哈希表】快乐数

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;哈希集合判重方法二&#xff1a;快慢指针判重 其他语言python3 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为…

【快慢指针】26.删除有序数组中的重复项

题目 法1&#xff1a;快慢指针 基础解法&#xff0c;必须掌握&#xff01;&#xff01;&#xff01; class Solution {public int removeDuplicates(int[] nums) {if (nums.length < 2) {return nums.length;}int slow 0, fast 1;while (fast < nums.length) {if (n…

Leetcode—234.回文链表【简单】

2023每日刷题&#xff08;二十七&#xff09; Leetcode—234.回文链表 直接法实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ bool isPalindrome(struct ListNode* head) {if(head NULL) {return t…