然后使用1的套路 4、单链表的倒数第k个节点 删除链表的倒数第k个节点 双指针,第一个指针先走k步,然后第二个指针指向头,两个指针相差k。两个指针同时往前走。 当第一个指针到尾部的时候,第二个指针刚好在倒数第k个节点。 func removeNthFromEnd(head *ListNode, n int) *ListNode { // 使用双指针,一个指...
优化的事情是大佬们干的事情。 二、数组/单链表系列算法 单链表常考的技巧就是双指针 数组常用的技巧有很大一部分还是双指针相关的技巧,说白了是教你如何聪明地进行穷举 3.1、二分搜索技巧 需要数组是有序的 3.2、滑动窗口算法技巧 明确的知道什么时候应该扩大窗口,什么时候该收缩窗口 3.3、回文串相关技巧 3.4、前...
数据结构是工具,算法是通过合适的工具解决特定问题的方法。 作者建议的刷题顺序 1、先学习像数组、链表这种基本数据结构的常用算法,比如单链表翻转,前缀和数组,二分搜索等。 2、学会基础算法之后,不要急着上来就刷回溯算法、动态规划这类笔试常考题,而应该先刷二叉树,先刷二叉树,先刷二叉树 因为二叉树是最容易培...
一旦你发现题目和子树有关,那大概率要给函数设置合理的定义和返回值,在后序位置写代码了。 力扣543题 二叉树的直径 var maxDepth = 0 func diameterOfBinaryTree(root *TreeNode) int { getMaxDepth(root) return maxDepth } func getMaxDepth(root *TreeNode) int { if root == nil { return 0 } lef...
labuladong的算法秘籍中,双指针技巧在链表问题解决中展现了强大威力。以下是七种常见链表题目及其解决方案:1. 合并两个有序链表 使用虚拟头结点处理,遍历两个链表,将较小节点插入到虚拟头结点后,直到一个链表为空,再将另一个链表接上,返回虚拟头结点的下一个节点。2. 单链表分解 创建两个虚拟头...
迭代实现思路看起来虽然简单,但是细节问题很多的,反而不容易写对。相反,递归实现就很简洁优美,下面就由浅入深,先从反转整个单链表说起。 一、递归反转整个链表 这个算法可能很多读者都听说过,这里详细介绍一下,先直接看实现代码: func ReverseList(head *ListNode) *ListNode {ifhead.next ==nil {returnhead ...
把滑动窗口算法变成了默写题 93 1.8.1 *小覆盖子串 96 1.8.2 字符串排列 100 1.8.3 找所有字母异位词 102 1.8.4 *长无重复子串 103 第2章 手把手刷数据结构 / 105 2.1 数组、链表 105 2.1.1 单链表的六大解题套路 105 2.1.2 数组双指针的解题套路 116 2.1.3 小而美的算法技巧:前缀和数组 124 2.1...
图书音像实时好价排行 PLUS会员:《罗马的崛起》 ¥19.5 京东 ¥19.5 值得买爆料价 《2025秋季新版初中必刷题》 ¥32.6 天猫精选 ¥14.6 值得买爆料价 《高中必刷题 选择性必修3》 ¥17.4 天猫精选 ¥8.07 值得买爆料价 你认为这条好价: 0 0暂无评论,打开APP参与讨论 ...
当当拓特图书专营店在线销售正版《预售 付东来(@labuladong) 刷题实战笔记:算法工程师求职加分的祕笈 博硕》。最新《预售 付东来(@labuladong) 刷题实战笔记:算法工程师求职加分的祕笈 博硕》简介、书评、试读、价格、图片等相关信息,尽在DangDang.com,网购《预售 付东
当当星图图书专营店在线销售正版《labuladong的算法笔记》。最新《labuladong的算法笔记》简介、书评、试读、价格、图片等相关信息,尽在DangDang.com,网购《labuladong的算法笔记》,就上当当星图图书专营店。