02 2023 档案
摘要:513.找树左下角的值 112.路径总和 113.路径总和ii 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
阅读全文
摘要:110.平衡二叉树 257.二叉树的所有路径 404.左叶子之和
阅读全文
摘要:104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
阅读全文
摘要:层序遍历 226.翻转二叉树 101.对称二叉树
阅读全文
摘要:今天主要看了二叉树讲解视频,有了基本的概念。 之后有时间敲一下递归遍历的代码。 迭代遍历、统一迭代暂时跳过,二刷再来。
阅读全文
摘要:学习到了思路,代码要二刷再补啦 239.滑动窗口最大值 力扣题目链接 347.前 K 个高频元素 力扣题目链接
阅读全文
摘要:牛客网链接 描述 有一个员工表dept_emp简况如下: emp_no dept_no from_date to_date 10001 d001 1986-06-26 9999-01-01 10002 d001 1996-08-03 9999-01-01 10003 d002 1996-08-03
阅读全文
摘要:20.有效的括号 力扣题目链接 心得:栈的经典题目,先进后出,有三种return false的情况。 1)遍历字符串完成,但是栈不为空。说明左括号比右括号多,导致栈中多存了数据 2)遍历字符串中,遍历到的右括号和栈顶的不一致。说明括号的类型没有匹配上 3)遍历字符串中,栈已经为空了。说明右括号比左括
阅读全文
摘要:232.用栈实现队列 力扣题目链接 心得:思路不难,栈和队列的特性要掌握 1)栈,先进后出;队列,先进先出 2)初始化一个栈,Stack<Integer> stack = new Stack<>() 3)放入元素,stack.push() 4)弹出栈顶元素,stack.pop() 5)获取栈顶元素但
阅读全文
摘要:今天两道题目都是KMP算法的应用,比较难,二刷再来~~ 28.实现strStr() 力扣题目链接 459.重复的子字符串 力扣题目链接
阅读全文
摘要:344.反转字符串 力扣题目链接 心得:关键在于定义两个指针(也可以说是索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。 class Solution { public void reverseString(char[] s) { int i = 0; int j
阅读全文
摘要:454.四数相加II 力扣题目链接 心得:这道题目感觉和昨天的最后一题【1.两数之和】思路挺像的。 1)先遍历2层for循环,求和,存入map 2)通过四数和为0这一信息,用0-sum,得到目标值target 3)去map中匹配,计算数量count 4)hashmap中key值不存在就添加键值对,k
阅读全文
摘要:第五天是周末的休息日,嘿嘿,今天继续~ 当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。 用哈希法的数据结构:数组、set、map 242.有效的字母异位词 力扣题目链接 心得:重点是了解思路,代码还是很简洁的。只需要存储26个字母,可以用数组实现。 1)定义一个长度为26的数组
阅读全文
摘要:24.两两交换链表中的节点 力扣题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/ 心得:关键是定义虚拟头结点、理清循环终止条件,交换的顺序,避免出现空指针、死循环。本题看视频理清思路之后,很快做出来了。 /** * Definition f
阅读全文
摘要:203.移除链表元素 力扣题目链接:https://leetcode.cn/problems/remove-linked-list-elements/ 心得:这道题做出来了,但是看了题解,发现使用虚拟头结点更简清晰,附上代码。 没用虚拟头结点: class Solution { public Lis
阅读全文
摘要:977.有序数组的平方 力扣题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 核心:双指针 心得:虽然做出来了,用到了双指针的思想,但代码过于复杂,有很多地方都可以再优化。 1)while内的if判断,没必要拆成三个条件,直接用
阅读全文
摘要:704.二分查找 力扣题目链接:https://leetcode.cn/problems/binary-search/ 核心: 使用二分法 前提: 1)数组为有序数组 2)数组中无重复元素。 二分法区间的定义: 左闭右闭、左闭右开 心得: 1)边界条件容易混乱 2)第二次做这道题目了,还是做错了,理
阅读全文