- 博客(16)
- 收藏
- 关注
原创 代码随想录day22
难,尤其是拼接的处理。而且对于二叉搜索树来说,要记得类似于前序遍历,即用if语句判断大小,即到底是走左节点还是右节点。很显然,对于二叉搜索树,只需要搜索一条边。而且不涉及中间节点的处理,看上去就可以理解为是前序遍历。值得看,把插入节点放在叶子节点上。
2023-01-02 18:11:55 174
原创 代码随想录day20
一看到二叉搜索树,想到中序遍历。这里是用一个变量pre存取之前的根节点,也就是现在根节点的左子节点,然后来进行判断。不能直接从上到下比较大小,这是陷阱!
2022-12-29 17:16:56 160
原创 代码随想录day18
完全不记得咋做的了,挺重要的。一方面是要想清如何利用后序遍历获得根节点,其次是每次遍历的上下界要取好。注意用val存左叶子的值。迭代法,每层用队列构造。
2022-12-25 12:33:59 176
原创 代码随想录day16
递归三要素:1、确定递归函数的意义,包括返回值类型与结束条件;2、确定递归顺序,前序中序还是后序?这个的终止条件和求最大深度有所不同,需要注意。关注一下n叉树的话如何写遍历条件。
2022-12-25 12:22:59 37
原创 代码随想录day15
好久之前做过,不记得了。用队列先进先出来存取每层的元素,然后把它放到一个临时数组中,然后再把这个加入到res中。递归法,前序遍历或者后序遍历。
2022-12-22 11:19:04 44
原创 代码随想录day11
java中一般都用linkedlist表示栈和队列。其中栈的操作是push、pop。队列的操作是offer、pull。按照栈先进后出的规则,那么能抵消的不是和最后进去的字符抵消,就是和最先进去的字符抵消。注意:Integer.valueOf(s)然后剩下的就是利用栈的先进后出的特性。
2022-12-18 11:35:33 40
原创 代码随想录day10 栈与队列
栈是要求后进先出,因此需要把后加入的数据先放在队列的第一个,在把其余的复制到这个队列的之后。常用stack操作 push、pop、peek、isEmpty。常用队列操作 offer、poll、peak、isEmpty。用两个栈来表示一个队列,一个用来进数据,一个用来出数据。队列是用linkedlist实现。栈是用stack实现。
2022-12-17 10:24:57 163
原创 代码随想录day7 哈希表Ⅱ
熟悉java相关的定义与常见的api。难点在于想到双指针并且剪枝操作,加四数相加转化成两数相加。列表、set集合、map。和昨日的第一题差不多。
2022-12-13 19:55:52 194
原创 代码随想录day6 哈希表
这道题是用数组作为哈希表,一个是在定义数组时,就要声明好数组的长度。还有一个是要学会使用s.charAt(i),用来遍历string字符串。然后包括利用ascii码,因此每个字符减去‘a'。还有java里头的for循环很方便!因为这里没有固定数组大小,因此哈希表用到的是set集合结构。需要注意set的声明方式:Set set1 = new HashSet();注意java中对于set来说,有set.contains()这个api。取key==temp的值。用map结构表示哈希表,
2022-12-13 19:48:20 245
原创 代码随想录day3
这题比较简单,一方面是熟悉java写链表,另一方面是写链表的时候就要定义好dummyhead,这样写起来更方便。这题个人觉得比较难,主要是对链表的增删查改理解不到位。然后照着代码抄了一遍。链表和数组思路类似,要记得想起双指针法。
2022-12-11 10:58:05 228
原创 代码随想录day2
977.有序数组的平方这题一开始用的是暴力解法。后来用上双指针,没想到要定义一个新的数组重新存放数据。209. 长度最小的子数组 这题一开始理解错了题意,没想到用滑动窗口。后来用一个滑动窗口做完,整体也比较简单。59.螺旋矩阵II这题觉得比较难,最难的是loop=n/2,其次是要想清楚左闭右开,以及每次转弯一个圈之后的startx和starty。感觉自己对java语言还是不够熟练。数组总结:二分法、双指针、滑动窗口等要有意识能想到,不要只想上来就暴力解题。
2022-12-08 12:13:12 574
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人