- 博客(7)
- 收藏
- 关注
原创 LeetCode 42.接雨水
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。对于每一个位置,两边必须要有高于它的柱子,这样的单位才能蓄水,蓄水的多少取决于:min(左边最高高度, 右边最高高度)— 当前高度。给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]图片源自B站up主NotOnlySuccess。
2025-03-04 17:22:29
256
原创 LeetCode 94.二叉树的中序遍历
中序遍历的遍历顺序:左,根,右,既可以通过递归实现,也可以通过迭代实现。给定一个二叉树的根节点 root ,返回 它的。输入:root = [1,null,2,3]递归地遍历左子树、访问根节点、遍历右子树。题目来源:Leetcode热题100。输出:[1,3,2]
2025-03-02 18:52:33
119
原创 LeetCode 283.移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。:遍历数组时,如果当前元素不为0,则将其放在 j 指针的位置,j 指针向后移动一位。:定义两个指针 i 和 j,i 用来遍历数组,j 用来记录非零元素的位置。最终将 j 后的元素全部置零,得到[1,3,12,0,0]。请注意 ,必须在不复制数组的情况下原地对数组进行操作。输入: nums = [0,1,0,3,12]:遍历完成后,j 指针之后的位置全部填充零。输出: [1,3,12,0,0],因此总时间复杂度为。
2025-03-02 16:50:33
531
原创 LeetCode 128.最长连续序列
对于每个元素,最多只会被访问两次,一次作为序列的起点(即内层循环),一次作为序列的一部分(即外层循环),因此时间复杂度为。给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。解释:最长数字连续序列是 [1, 2, 3, 4]。输入:nums = [0,3,7,2,5,8,4,6,0,1]输入:nums = [100,4,200,1,3,2]显然,不能对数组进行排序,因为排序的时间复杂度是。输入:nums = [1,0,1,2]请你设计并实现时间复杂度为。
2025-03-01 22:16:12
692
原创 LeetCode 49.字母异位词分组
显然,如果把 aab, aba, baa 按字母从小到大排序,我们可以得到同一个字符串aab。输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]因此,可以使用哈希来分组,排序后的字符串当作key,原字符串组成的集合当作value。给你一个字符串数组,请你将 字母异位词 组合在一起。是由重新排列源单词的所有字母得到的一个新单词。输出: [[“”]]
2025-03-01 17:01:55
865
原创 【leetcode】最大连续1的个数Ⅰ、Ⅱ、Ⅲ
是在给定特定窗口大小的数组或字符串上执行要求的操作。该技术可以将一部分问题中的嵌套循环转变为一个单循环,因此它可以减少时间复杂度。简而言之,滑动窗口算法在一个特定大小的字符串或数组上进行操作,而不在整个字符串和数组上操作,这样就降低了问题的复杂度,从而也达到降低了循环的嵌套深度。其实这里就可以看出来滑动窗口主要应用在数组和字符串上。
2023-09-05 18:02:33
82
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人