day01:前缀和
题目1
标签
数组
、前缀和
题解
1 | class Solution { |
- 时间复杂度:O(n),其中 n 为 nums 的大小
- 空间复杂度:O(1)
执行用时:4 ms, 在所有 C++ 提交中击败了49.82%的用户
内存消耗:8.2 MB, 在所有 C++ 提交中击败了65.68%的用户
通过测试用例:53 / 53
题目2
标签
数组
、前缀和
思路
先求出前缀和数组,求解前可以将前缀和数组置为0,方便后续计算。遍历前缀和数组,i从1到n-1
- 左边:
arr[i] - arr[0]
- 右边:
arr[n - 1] - arr[i]
题解
1 | class Solution { |
- 时间复杂度:O(n),其中 n 为 nums 的大小
- 空间复杂度:O(n),保存前缀和数组用到
执行用时:28 ms, 在所有 C++ 提交中击败了17.17%的用户
内存消耗:31.8 MB, 在所有 C++ 提交中击败了5.02%的用户
通过测试用例:745 / 745
day02:字符串
题目1
标签
字符串
、哈希表
思路
使用哈希表unordered_map
存储两个单词之间的映射关系即可。
题解
1 | class Solution { |
- 时间复杂度:O(n),其中 n 为 nums 的大小
- 空间复杂度:O(2 \ n)*, 需要使用两个哈希表
执行用时:8 ms, 在所有 C++ 提交中击败了56.60%的用户
内存消耗:6.7 MB, 在所有 C++ 提交中击败了85.03%的用户
通过测试用例:43 / 43
题目2
标签
字符串
、双指针
、动态规划
题解
1 | class Solution { |
- 时间复杂度:O(n),其中 n 为数组 t 的大小
- 空间复杂度:O(1)
执行用时:0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:6.2 MB, 在所有 C++ 提交中击败了63.35%的用户
通过测试用例:17 / 17
day03:链表
题目1
标签
递归
、链表
题解
1 | /** |
- 时间复杂度:O(n + m),其中 n 为
list1
的长度,m 是list2
的长度 - 空间复杂度:O(n + m)
执行用时:12 ms, 在所有 C++ 提交中击败了9.40%的用户
内存消耗:14.5 MB, 在所有 C++ 提交中击败了15.85%的用户
通过测试用例:208 / 208
题目2
标签
递归
、链表
题解
1 | /** |
- 时间复杂度:O(n),其中 n 为
head
的长度 - 空间复杂度:O(1)
执行用时:8 ms, 在所有 C++ 提交中击败了49.83%的用户
内存消耗:8 MB, 在所有 C++ 提交中击败了71.06%的用户
通过测试用例:28 / 28
day04:链表、双指针
题目1
标签
链表
、双指针
题解
1 | /** |
- 时间复杂度:O(n),其中 n 为
head
的长度 - 空间复杂度:O(1)
执行用时:0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:6.8 MB, 在所有 C++ 提交中击败了81.83%的用户
通过测试用例:36 / 36
题目2
标签
链表
、哈希表
、双指针
题解
1 | /** |
- 时间复杂度:O(n),其中 n 为
head
的长度 - 空间复杂度:O(n),使用哈希表
执行用时:16 ms, 在所有 C++ 提交中击败了8.32%的用户
内存消耗:9.4 MB, 在所有 C++ 提交中击败了6.32%的用户
通过测试用例:16 / 16
1 | class Solution { |
- 时间复杂度:O(n),其中 n 为
head
的长度 - 空间复杂度:O(1)
执行用时:8 ms, 在所有 C++ 提交中击败了73.20%的用户
内存消耗:7.3 MB, 在所有 C++ 提交中击败了97.45%的用户
通过测试用例:16 / 16
day05:
题目1
标签
数组
、动态规划
题解
1 | class Solution { |
- 时间复杂度:O(n),其中 n 为 prices 数组的大小
- 空间复杂度:O(1)
执行用时:104 ms, 在所有 C++ 提交中击败了61.28%的用户
内存消耗:91 MB, 在所有 C++ 提交中击败了85.19%的用户
通过测试用例:211 / 211
1 | class Solution { |
- 时间复杂度:O(n ^ 2),其中 n 为 prices 数组的大小
- 空间复杂度:O(1)
执行用时:104 ms, 在所有 C++ 提交中击败了61.28%的用户
内存消耗:91 MB, 在所有 C++ 提交中击败了85.19%的用户
通过测试用例:211 / 211
题目2
标签
贪心
、哈希表
、字符串
题解
1 | class Solution { |
- 时间复杂度:O(n),其中 n 为 s 的大小
- 空间复杂度:O(n),用哈希表
执行用时:0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:6.6 MB, 在所有 C++ 提交中击败了14.52%的用户
通过测试用例:95 / 95
day06:树
题目1
标签
栈
、树
、深度优先搜索
题解
1 | /* |
- 时间复杂度:O(n),其中 n 为N 叉树的节点,每个节点恰好被遍历一次。
- 空间复杂度:O(n)
执行用时:16 ms, 在所有 C++ 提交中击败了67.73%的用户
内存消耗:11.1 MB, 在所有 C++ 提交中击败了82.02%的用户
通过测试用例:38 / 38
题目2
标签
树
、广度优先搜索
、二叉树
题解
1 | /** |
- 时间复杂度:O(n),其中 n 为 2 叉树的节点,每个节点恰好被遍历一次。
- 空间复杂度:O(n),需要使用队列。
执行用时:8 ms, 在所有 C++ 提交中击败了22.90%的用户
内存消耗:12.9 MB, 在所有 C++ 提交中击败了8.27%的用户
通过测试用例:34 / 34
day07:二分查找
题目1
标签
数组
、二分查找
题解
1 | class Solution { |
- 时间复杂度:O(logn),其中 n 为数组的长度
- 空间复杂度:O(1)。
执行用时:20 ms, 在所有 C++ 提交中击败了98.15%的用户
内存消耗:26.9 MB, 在所有 C++ 提交中击败了54.09%的用户
通过测试用例:47 / 47
1 | class Solution { |
- 时间复杂度:O(logn),其中 n 为数组长度
- 空间复杂度:O(1)。
执行用时:48 ms, 在所有 C++ 提交中击败了7.34%的用户
内存消耗:27 MB, 在所有 C++ 提交中击败了5.73%的用户
通过测试用例:47 / 47
题目2
标签
二分查找
、交互
题解
1 | // The API isBadVersion is defined for you. |
- 时间复杂度:O(logn),其中 n 为给定版本的数量。
- 空间复杂度:O(1)。
执行用时:0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:5.8 MB, 在所有 C++ 提交中击败了47.59%的用户
通过测试用例:23 / 23
day08:二叉搜索树⭐
题目1
验证二叉搜索树
标签
树
、深度优先搜索
、二叉搜索树
、二叉树
题解
1 | /** |
- 时间复杂度:O(n),其中 n 为二叉树的节点个数。二叉树的每个节点最多被访问一次,因此时间复杂度为O(n)
- 空间复杂度:O(n),其中 n 为二叉树的节点个数。栈最多存储 n 个节点,因此需要额外的 O(n) 的空间。。
执行用时:4 ms, 在所有 C++ 提交中击败了97.63%的用户
内存消耗:21.1 MB, 在所有 C++ 提交中击败了59.44%的用户
通过测试用例:80 / 80
题目2
标签
树
、深度优先搜索
、二叉搜索树
、二叉树
思路
- 二次遍历
每次遍历都记录从根节点到节点p
或者节点q
的路径。然后挨个比对,最后一个两个位置的节点相同的节点,则该节点是两个节点的公共祖先节点。
- 一次遍历
题解
1 | /** |
- 时间复杂度:O(n),其中 n 为二叉搜索树中的节点个数。
- 空间复杂度:O(n),需要存储储根节点到 p 和 q 的路径。和上面的分析方法相同,在最坏的情况下,路径的长度为 Θ(n),因此需要 Θ(n) 的空间。
执行用时:44 ms, 在所有 C++ 提交中击败了5.53%的用户
内存消耗:22.7 MB, 在所有 C++ 提交中击败了75.57%的用户
通过测试用例:27 / 27
1 | /** |
- 时间复杂度:O(n),其中 n 为二叉搜索树中的节点个数。
- 空间复杂度:O(1)。
执行用时:28 ms, 在所有 C++ 提交中击败了66.76%的用户
内存消耗:22.6 MB, 在所有 C++ 提交中击败了98.27%的用户
通过测试用例:27 / 27
day09:Dfs/Bfs⭐
题目1
标签
深度优先搜索
、广度优先搜索
、数组
、矩阵
题解
1 | class Solution { |
- 时间复杂度:O(n \ m),其中 n 和 m* 分别是二维数组的行数和列数。最坏情况下需要遍历所有的方格一次。
- 空间复杂度:O(1),
执行用时:4 ms, 在所有 C++ 提交中击败了97.02%的用户
内存消耗:13.4 MB, 在所有 C++ 提交中击败了97.95%的用户
通过测试用例:277 / 277
题目2
标签
深度优先搜索
、广度优先搜索
、并查集
、数组
、矩阵