[刷题]LeetCode每日一题[2022.02]
文章目录
[2.10]\560. Subarray Sum Equals K
分析:前缀和
|
|
[02.13]\78. Subsets
分析:求子集,任意顺序输出
三种方法:1)dfs+回溯;2)迭代法;3)位操作
|
|
[02.14]\104. Maximum Depth of Binary Tree
分析:求树的最大深度
|
|
[02.15]\136. Single Number
|
|
[02.16]\24. Swap Nodes in Pairs
分析:交换链表的相邻节点并返回修改后的链表。
双指针方法; 1)指针的指针;2)多使用一个闲置节点。
|
|
[02.17]\39. Combination Sum
Example 1:
|
|
分析:(跟硬币找零方案数目基本一样)最直接的想法就是 排序后去重,每次都拿最小的一个整数来试探。 即dfs+回溯;时间复杂度O(N^(M/min_cand + 1)); M = target, min_cand = min(candidates);
|
|
[02.18]\402. Remove K Digits
|
|
[02.19]\1675. Minimize Deviation in Array
分析:奇数 至多进行一次double操作,而偶数 则可以一直divide直到其变为奇数。 具体见代码。
|
|
[02.20]\1288. Remove Covered Intervals
分析:先排序,排序后 二维数组先按第一个数大小排序,然后按第二个大小排序。
那么举例:
|
|
|
|
[02.21]\169. Majority Element
分析:n个数中找到最多的那个元素。最直接的方法:排序然后取最中间的那个数。但是限制线性时间和O(1)空间的话,可以考虑设置一个计数变量count 用于记录出现次数最多的那个数次数 - 其他数出现次数的总和。
|
|
[02.22]\171. Excel Sheet Column Number
|
|
[02.23]\133. Clone Graph
分析:DFS或BFS,unordered_map防止重复访问
|
|
[02.24]\148. Sort List
分析:TC O(logn), SC: O(1) 采用归并排序
|
|
[02.25]\165. Compare Version Numbers
分析:按照'.‘从左到右分开的子串转换成十进制依次比较,若两个在某一个子串不等,则直接返回1或-1,否则遍历完毕表示两个string按照题意其version是相等的,则返回0。TC:O(m+n),SC:O(1)
|
|
[02.26]\847. Shortest Path Visiting All Nodes
Constraints:
n == graph.length
1 <= n <= 12
0 <= graph[i].length < n
graph[i]
does not containi
.- If
graph[a]
containsb
, thengraph[b]
containsa
. - The input graph is always connected.
题意:给定n个标记[0, n-1]的节点组成的一个图。graph[i]表示与节点i相连。返回访问所有节点的最短路径长度(可以从任意节点开始,可以多次访问一个节点,也可以重复使用边)。
分析:题目给出了Constraints,看到n的范围是[1, 12],所以最先想到 dfs + 记忆化可能可以解决。
|
|
[02.27]\662. Maximum Width of Binary Tree
|
|
[02.28]\228. Summary Ranges
|
|
文章作者 fzhiy
上次更新 2022-02-28