05 2024 档案
摘要:一、回溯法 回溯法是一种搜索方式,也是递归的副产品。只要有递归就会有回溯 回溯法并不是什么高效的算法。因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案, 如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。 回溯法,一般可以解决如下几种问题: 组合问题:N个数里面
阅读全文
摘要:修剪二叉搜索树 这道题目比较难,比 添加增加和删除节点难的多,建议先看视频理解。 题目链接/文章讲解: https://programmercarl.com/0669.修剪二叉搜索树.html 视频讲解: https://www.bilibili.com/video/BV17P41177ud /**
阅读全文
摘要:二叉搜索树的最近公共祖先 相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。 题目链接/文章讲解:https://programmercarl.com/0235.二叉搜索树的最近公共祖先.html 视频讲解:https://www.bilibili.com/video/
阅读全文
摘要:530.二叉搜索树的最小绝对差 需要领悟一下二叉树遍历上双指针操作,优先掌握递归 题目链接/文章讲解:https://programmercarl.com/0530.二叉搜索树的最小绝对差.html 视频讲解:https://www.bilibili.com/video/BV1DD4y11779 v
阅读全文
摘要:654.最大二叉树 又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历 题目链接/文章讲解:https://programmercarl.com/0654.最大二叉树.html 视频讲解:https://www.
阅读全文
摘要:找树左下角的值 本地递归偏难,反而迭代简单属于模板题, 两种方法掌握一下 题目链接/文章讲解/视频讲解:https://programmercarl.com/0513.找树左下角的值.html /** * Definition for a binary tree node. * function T
阅读全文
摘要:三道题都没想出来,还是要加强递归的练习 110.平衡二叉树 (优先掌握递归) 再一次涉及到,什么是高度,什么是深度,可以巩固一下。 题目链接/文章讲解/视频讲解:https://programmercarl.com/0110.平衡二叉树.html function getHeight(node) {
阅读全文
摘要:104.二叉树的最大深度 (优先掌握递归) 什么是深度,什么是高度,如何求深度,如何求高度,这里有关系到二叉树的遍历方式。 大家 要先看视频讲解,就知道以上我说的内容了,很多录友刷过这道题,但理解的还不够。 题目链接/文章讲解/视频讲解: https://programmercarl.com/010
阅读全文
摘要:层序遍历 看完本篇可以一口气刷十道题,试一试, 层序遍历并不难,大家可以很快刷了十道题。 题目链接/文章讲解/视频讲解:https://programmercarl.com/0102.二叉树的层序遍历.html 层序遍历,10道题,一一通过,比较简单 226.翻转二叉树 (优先掌握递归) 这道题目
阅读全文
摘要:递归遍历 (必须掌握) 二叉树的三种递归遍历掌握其规律后,其实很简单 题目链接/文章讲解/视频讲解:https://programmercarl.com/二叉树的递归遍历.html 迭代遍历 (基础不好的录友,迭代法可以放过) 题目链接/文章讲解/视频讲解:https://programmercar
阅读全文
摘要:滑动窗口最大值 (一刷至少需要理解思路) 之前讲的都是栈的应用,这次该是队列的应用了。 本题算比较有难度的,需要自己去构造单调队列,建议先看视频来理解。 题目链接/文章讲解/视频讲解:https://programmercarl.com/0239.滑动窗口最大值.html /** * @param
阅读全文
摘要:今天的题主要是关于栈的,比较简单,一次性过 20. 有效的括号 讲完了栈实现队列,队列实现栈,接下来就是栈的经典应用了。 大家先自己思考一下 有哪些不匹配的场景,在看视频 我讲的都有哪些场景,落实到代码其实就容易很多了。 题目链接/文章讲解/视频讲解:https://programmercarl.c
阅读全文
摘要:232.用栈实现队列 题目链接/文章讲解/视频讲解:https://programmercarl.com/0232.用栈实现队列.html var MyQueue = function() { this.stackIn = []; this.stackOut = []; }; /** * @para
阅读全文
摘要:实现 strStr() 因为KMP算法很难,大家别奢求 一次就把kmp全理解了,大家刚学KMP一定会有各种各样的疑问,先留着,别期望立刻啃明白,第一遍了解大概思路,二刷的时候,再看KMP会 好懂很多。 或者说大家可以放弃一刷可以不看KMP,今天来回顾一下之前的算法题目就可以。 因为大家 算法能力还没
阅读全文
摘要:344.反转字符串 建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数 题目链接/文章讲解/视频讲解:https://programmercarl.com/0344.反转字符串.html /** * @param {c
阅读全文
摘要:454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体会一下 哈希法 如何提高程序执行效率,降低时间复杂度,当然使用哈希法 会提高空间复杂度,但一般来说我们都是舍空间 换时间, 工业开发也是这样。 题目链接/文章讲解/视频讲解:https://programmercarl.com/0
阅读全文
摘要:哈希表理论基础 建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。 什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。 这句话很重要,大家在做哈希表题目都要思考这句话。 文章讲解:https://progr
阅读全文
摘要:两两交换链表中的节点 用虚拟头结点,这样会方便很多。 本题链表操作就比较复杂了,建议大家先看视频,视频里我讲解了注意事项,为什么需要temp保存临时节点。 题目链接/文章讲解/视频讲解: https://programmercarl.com/0024.两两交换链表中的节点.html /** * De
阅读全文
摘要:203.移除链表元素 建议: 本题最关键是要理解 虚拟头结点的使用技巧,这个对链表题目很重要。 题目链接/文章讲解/视频讲解::https://programmercarl.com/0203.移除链表元素.html /** * Definition for singly-linked list. *
阅读全文
摘要:977.有序数组的平方 题目建议: 本题关键在于理解双指针思想 题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 文章讲解:https://programmercarl.com/0977.有序数组的平方.html 视频讲解: h
阅读全文
摘要:704、二分查找 题目链接:https://leetcode.cn/problems/binary-search/ 文章讲解:https://programmercarl.com/0704.二分查找.html 视频讲解:https://www.bilibili.com/video/BV1fA4y1o
阅读全文