- 博客(23)
- 收藏
- 关注
原创 代码随想录Day20
Arrays.stream(nums).sum() 求和。使用Integer内置比较方法,不会溢出。先看一个维度,再看另一个维度。LinkedList变数组。遍历两次,左右两边分开看。
2024-09-16 00:11:50 419
原创 代码随想录Day16
二叉搜索树中序遍历就是从小到大排序,本题将中序遍历反过来即可。如果和已经大于了需要的和,就return,可以剪枝。求和先排序,方便剪枝。
2024-09-06 11:28:38 258
原创 代码随想录Day11
递归时需注意,当有一个孩子为空时,最小深度为另一个孩子的最小深度加1.三种情况:(1)两树相同(2)子树在根的左子树(3)子树在根的右子树。可以用上题改改,也可以用递归。和上一题没差啦~就一样的。
2024-06-26 21:46:30 292
原创 代码随想录Day10
和上一题类似,可以把结果翻转或者直接插入链表头部,但要记得把ArrayList改成LinkedList。要记得判断加入队列的节点是否为空。
2024-06-25 23:51:37 373
原创 代码随想录Day9
构建小顶堆输出最大的k个元素,如果构建大顶堆,则需要对所有元素的频率排序,不如小顶堆,但用小顶堆要记得倒序输出。旧元素的移除:是否与滑动窗口中被移除的元素相等。新元素的加入:删掉单调队列中所有比它小的。优先队列:PriorityQueue。Lambda表达式初始化优先队列。
2024-06-24 23:57:00 303
原创 代码随想录Day8
public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回字符串缓冲区本身。public String substring(int start,int end):截取从指定位置开始到结束位置,包括开始位置,不包括结束位置。三种情况:(1)左括号多了-->最后栈不为空(2)右括号多了-->栈空了但还没有匹配完(3)没配上。public String substring(int start):从指定位置截取到末尾。
2024-06-23 01:06:24 853
原创 代码随想录Day5
Arrays.copyOfRange(array,start,end)可以选取数组的一部分组成新的array。哈希map,两两一组,和1类似。为切入点+哈希set。
2024-05-11 02:00:27 189 1
原创 代码随想录Day3
先写了单链表,下次再写双链表。记得设置虚头尾节点,按下标添加节点时要分类讨论。注意返回值,head变了,不能直接返回head。快慢指针,追及问题+数学计算,巧妙至极!这次用的迭代,下次可以用递归做做。可以通过设置虚拟头节点统一操作。只需要扫描一遍的方法:快慢指针。双指针,非常巧妙啊!
2024-05-08 23:54:33 453
原创 代码随想录Day2
注意每次循环的左开右闭,边长为奇数时需要单独处理中间的数。滑动窗口,用一个Map记录还需要的字符数。滑动窗口,可以用数组或者哈希表当篮子。数组章节用时2Days :(
2024-05-08 03:07:35 186
原创 代码随想录Day1
判断条件有两种: (1)左闭右闭 left <= right (2)左闭右开 left < right。方法二:先找到一个target,然后左右滑动找边界,时间复杂度高,不符合要求。利用二分查找(1),最后return right + 1;方法一:分别找到左右边界(不包含target),然后返回。双指针,一个头,一个尾。递增数组平方后,大数在两端。(时间复杂度O(log n),空间复杂度O(1))(时间复杂度O(log n))(时间复杂度O(log n))滑动窗口 时间复杂度O(n)
2024-05-06 22:34:41 139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人