- 博客(3)
- 收藏
- 关注
原创 Leetcode102. 二叉树的层序遍历递归和迭代两种解法|Leecode226.
尽管是层序遍历,递归法仍然是使用深度优先。用一个helper function, 维护当前层数以及总的levels数组。在levels数组里建立子数组代表每一层的节点,搜索到第几层就把当前节点加到第几位的小数组中。把当前节点的左子节点、右子节点append到队列中。pop队列头节点并加入到level中当作当前节点。在上一层先把队列中的节点按顺序pop出来并把每个节点的子节点加入到队列中。初始化一个包括当前层的所有节点的数组level=[]初始化一个result数组。把root加到队列中。
2023-06-19 09:26:57 42
原创 代码随想录算法训练营第2天|Python版 力扣LeetCode 977. 有序数组的平方,209. 长度最小的子数组,59. 螺旋矩阵II
初始思路:i和j双指针一前一后,只要j没到数组最后一位就不跳出循环。ij之间的数字和<target就往后加一位,>target就在前面减一位,这样可以做到在数组上滑动。但是这样需要用到sum函数,而sum是O(n)的,所以相当于还是暴力解。这样写会创造一个每个子数组都指向都一个地址的二维数组,改其中任何一个都会对其他的所有进行相同的操作。这题还是双指针(对于这题来说可能叫滑动窗口更贴切),但很容易把双指针写成暴力解。最开始先想到是否要把数组在0的位置切割分成两部分,但那样再进行排序就做不了了。
2023-05-26 10:05:53 39 1
原创 代码随想录算法训练营第一天|Python版LeetCode 704. 二分查找 LeetCode 27. 移除元素
val则nums[slow]=nums[fast]然后slow+=1,fast无论怎样要在每个iteration都+1。因为if target>nums[middle],则middle肯定不是我们要找的下标,所以left=middle+1;while(left?right) 的符号是< 还是
2023-05-24 11:58:17 159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人