09 2024 档案
摘要:93.复原IP地址 题目链接:93.复原IP地址 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰复原IP地址 日期:2024-09-20 Java代码如下: class Solution { List<String> res = new ArrayList<>(); pri
阅读全文
摘要:39. 组合总和 题目链接:39. 组合总和 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰组合总和 日期:2024-09-19 想法:组合总和类型题,允许重复使用元素,递归不+1就行。 Java代码如下: class Solution { List<Integer> pa
阅读全文
摘要:回溯算法理论基础: 1.回溯是递归的副产品,有递归就有回溯。 2.回溯的本质是穷举,想让回溯法高效些,可以加一些剪枝的操作 3.组合问题:N个数里面按一定规则找出k个数的集合 切割问题:一个字符串按一定规则有几种切割方式 子集问题:一个N个数的集合里有多少符合条件的子集 排列问题:N个数按一定规则全
阅读全文
摘要:669. 修剪二叉搜索树 题目链接:669. 修剪二叉搜索树 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰修剪二叉搜索树 日期:2024-09-17 想法:节点为空返回空,值在中间时,继续递归左右两边,小于时递归右子树,大于时递归左子树 Java代码如下: class S
阅读全文
摘要:235. 二叉搜索树的最近公共祖先 题目链接:235. 二叉搜索树的最近公共祖先 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰二叉搜索树的最近公共祖先 日期:2024-09-16 想法:相比于普通二叉树,二叉搜索树从上往下遍历,在qp中间的值的一定是公共祖先,而第一个则是
阅读全文
摘要:530.二叉搜索树的最小绝对差 题目链接:530.二叉搜索树的最小绝对差 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰二叉搜索树的最小绝对差 日期:2024-09-14 想法:好好利用二叉搜索树中序遍历是有序的性质,设置一个节点表示前一个结点就能很方便的计算差值了 Jav
阅读全文
摘要:654.最大二叉树 题目链接:654.最大二叉树 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰最大二叉树 日期:2024-09-13 想法:根据昨天中后序列构造二叉树的经验,要找到数组中的最大值的位置,可以设置两个指针表示子树的范围(左闭右开) Java代码如下: cla
阅读全文
摘要:513.找树左下角的值 题目链接:513.找树左下角的值 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰找树左下角的值 日期:2024-09-12 想法:1.迭代:用层序遍历,遍历每层时记录下第一个节点的值,到最后一层就是要求的值;2.递归:根据最大的深度来找目标值。 Ja
阅读全文
摘要:222.完全二叉树的节点个数 题目链接:222.完全二叉树的节点个数 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰完全二叉树的节点个数 日期:2024-09-11 想法:1.跟普通二叉树一样,所有二叉树节点都可以这么求;2.完全二叉树,首先要知道完全二叉树是什么样的,它所
阅读全文
摘要:226.翻转二叉树 题目链接:226.翻转二叉树 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰翻转二叉树 日期:2024-09-10 想法:按照前序遍历的思路,先翻转再递归左右。 Java代码如下: class Solution { public TreeNode inv
阅读全文
摘要:二叉树理论基础 1.二叉树的种类:满二叉树:深度为k,有2^k-1个节点的二叉树;完全二叉树:除最后一层外的所有层全满,而且最后一层的结点集中在最左边,中间不能空 2.二叉搜索树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的
阅读全文
摘要:150. 逆波兰表达式求值 题目链接:150. 逆波兰表达式求值 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰逆波兰表达式求值 日期:2024-09-07 想法:用栈解决,遇到运算符取前两个数字计算(表达式总是成立的,不用做额外的判定) Java代码如下: class S
阅读全文
摘要:栈与队列理论基础 1.队列是先进先出,栈是先进后出 2.队列: 主要操作: offer(): 向队列尾部添加元素。 poll(): 从队列头部移除并返回元素。 peek(): 查看队列头部的元素但不移除。 实现: 在Java中可以使用 java.util.Queue 接口的实现类(如 LinkedL
阅读全文
摘要:151.翻转字符串里的单词 题目链接:151.翻转字符串里的单词 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰翻转字符串里的单词 日期:2024-09-05 想法:要求:1.不使用Java内置方法实现;思路:1.去除首尾以及中间多余空格。2.反转整个字符串;3.反转各个单
阅读全文
摘要:leetcode 344.反转字符串 题目链接:leetcode 344.反转字符串 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰反转字符串 日期:2024-09-04 想法:用临时值保存左边,左右互换就行了。 Java代码如下: class Solution { pub
阅读全文
摘要:454.四数相加II 题目链接:454.四数相加II 文档讲解︰代码随想录(programmercarl.com) 视频讲解︰四数相加II 日期:2024-09-03 想法:4个数组,两两分开遍历时间复杂度低点,用一个map,key是i+j的值,value是出现次数,对nums3、4只需要判断0 -
阅读全文
摘要:哈希表理论基础 1.根据关键码的值而直接进行访问的数据结构(直白来讲其实数组就是一张哈希表,哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素); 2.哈希表都是用来快速判断一个元素是否出现集合里; 3.哈希函数:把值对应到哈希表的函数;哈希碰撞:映射到哈希表同一个索引下标的位置 4
阅读全文