Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_algorithm
提交
93c81596
S
skill_tree_algorithm
项目概览
CSDN 技术社区
/
skill_tree_algorithm
通知
9
Star
8
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
93c81596
编写于
11月 18, 2021
作者:
F
feilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bug
上级
a73ff9b0
变更
101
展开全部
隐藏空白更改
内联
并排
Showing
101 changed file
with
152 addition
and
162 deletion
+152
-162
data/2.算法中阶/1.leetcode-数组/1.59-螺旋矩阵 II/solution.md
data/2.算法中阶/1.leetcode-数组/1.59-螺旋矩阵 II/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/10.48-旋转图像/solution.md
data/2.算法中阶/1.leetcode-数组/10.48-旋转图像/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/11.1-两数之和/solution.md
data/2.算法中阶/1.leetcode-数组/11.1-两数之和/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/12.54-螺旋矩阵/solution.md
data/2.算法中阶/1.leetcode-数组/12.54-螺旋矩阵/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/13.80-删除有序数组中的重复项 II/solution.md
data/2.算法中阶/1.leetcode-数组/13.80-删除有序数组中的重复项 II/solution.md
+3
-3
data/2.算法中阶/1.leetcode-数组/14.56-合并区间/solution.md
data/2.算法中阶/1.leetcode-数组/14.56-合并区间/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/15.73-矩阵置零/solution.md
data/2.算法中阶/1.leetcode-数组/15.73-矩阵置零/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/16.74-搜索二维矩阵/solution.md
data/2.算法中阶/1.leetcode-数组/16.74-搜索二维矩阵/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/2.81-搜索旋转排序数组 II/solution.md
data/2.算法中阶/1.leetcode-数组/2.81-搜索旋转排序数组 II/solution.md
+3
-3
data/2.算法中阶/1.leetcode-数组/3.18-四数之和/solution.md
data/2.算法中阶/1.leetcode-数组/3.18-四数之和/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/4.57-插入区间/solution.md
data/2.算法中阶/1.leetcode-数组/4.57-插入区间/solution.md
+2
-2
data/2.算法中阶/1.leetcode-数组/5.4-寻找两个正序数组的中位数/solution.md
data/2.算法中阶/1.leetcode-数组/5.4-寻找两个正序数组的中位数/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/6.78-子集/solution.md
data/2.算法中阶/1.leetcode-数组/6.78-子集/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/7.33-搜索旋转排序数组/solution.md
data/2.算法中阶/1.leetcode-数组/7.33-搜索旋转排序数组/solution.md
+3
-3
data/2.算法中阶/1.leetcode-数组/8.15-三数之和/solution.md
data/2.算法中阶/1.leetcode-数组/8.15-三数之和/solution.md
+1
-1
data/2.算法中阶/1.leetcode-数组/9.34-在排序数组中查找元素的第一个和最后一个位置/solution.md
...算法中阶/1.leetcode-数组/9.34-在排序数组中查找元素的第一个和最后一个位置/solution.md
+2
-2
data/2.算法中阶/2.leetcode-链表/1.82-删除排序链表中的重复元素 II/solution.md
data/2.算法中阶/2.leetcode-链表/1.82-删除排序链表中的重复元素 II/solution.md
+1
-1
data/2.算法中阶/2.leetcode-链表/10.21-合并两个有序链表/solution.md
data/2.算法中阶/2.leetcode-链表/10.21-合并两个有序链表/solution.md
+1
-1
data/2.算法中阶/2.leetcode-链表/2.19-删除链表的倒数第 N 个结点/solution.md
data/2.算法中阶/2.leetcode-链表/2.19-删除链表的倒数第 N 个结点/solution.md
+1
-1
data/2.算法中阶/2.leetcode-链表/3.83-删除排序链表中的重复元素/solution.md
data/2.算法中阶/2.leetcode-链表/3.83-删除排序链表中的重复元素/solution.md
+1
-1
data/2.算法中阶/2.leetcode-链表/4.25-K 个一组翻转链表/solution.md
data/2.算法中阶/2.leetcode-链表/4.25-K 个一组翻转链表/solution.md
+1
-1
data/2.算法中阶/2.leetcode-链表/5.86-分隔链表/solution.md
data/2.算法中阶/2.leetcode-链表/5.86-分隔链表/solution.md
+1
-1
data/2.算法中阶/2.leetcode-链表/7.92-反转链表 II/solution.md
data/2.算法中阶/2.leetcode-链表/7.92-反转链表 II/solution.md
+1
-1
data/2.算法中阶/2.leetcode-链表/8.2-两数相加/solution.md
data/2.算法中阶/2.leetcode-链表/8.2-两数相加/solution.md
+1
-1
data/2.算法中阶/2.leetcode-链表/9.24-两两交换链表中的节点/solution.md
data/2.算法中阶/2.leetcode-链表/9.24-两两交换链表中的节点/solution.md
+1
-1
data/2.算法中阶/3.leetcode-字符串/1.58-最后一个单词的长度/solution.md
data/2.算法中阶/3.leetcode-字符串/1.58-最后一个单词的长度/solution.md
+1
-1
data/2.算法中阶/3.leetcode-字符串/10.28-实现 strStr()/solution.md
data/2.算法中阶/3.leetcode-字符串/10.28-实现 strStr()/solution.md
+3
-3
data/2.算法中阶/3.leetcode-字符串/11.97-交错字符串/solution.md
data/2.算法中阶/3.leetcode-字符串/11.97-交错字符串/solution.md
+1
-1
data/2.算法中阶/3.leetcode-字符串/2.93-复原 IP 地址/solution.md
data/2.算法中阶/3.leetcode-字符串/2.93-复原 IP 地址/solution.md
+1
-1
data/2.算法中阶/3.leetcode-字符串/5.3-无重复字符的最长子串/solution.md
data/2.算法中阶/3.leetcode-字符串/5.3-无重复字符的最长子串/solution.md
+2
-2
data/2.算法中阶/3.leetcode-字符串/7.14-最长公共前缀/solution.md
data/2.算法中阶/3.leetcode-字符串/7.14-最长公共前缀/solution.md
+1
-1
data/2.算法中阶/3.leetcode-字符串/9.65-有效数字/solution.md
data/2.算法中阶/3.leetcode-字符串/9.65-有效数字/solution.md
+1
-1
data/2.算法中阶/4.leetcode-栈与队列/1.227-基本计算器 II/solution.md
data/2.算法中阶/4.leetcode-栈与队列/1.227-基本计算器 II/solution.md
+2
-2
data/2.算法中阶/4.leetcode-栈与队列/10.42-接雨水/solution.md
data/2.算法中阶/4.leetcode-栈与队列/10.42-接雨水/solution.md
+1
-1
data/2.算法中阶/4.leetcode-栈与队列/2.71-简化路径/solution.md
data/2.算法中阶/4.leetcode-栈与队列/2.71-简化路径/solution.md
+1
-1
data/2.算法中阶/4.leetcode-栈与队列/3.20-有效的括号/solution.md
data/2.算法中阶/4.leetcode-栈与队列/3.20-有效的括号/solution.md
+1
-1
data/2.算法中阶/4.leetcode-栈与队列/4.224-基本计算器/solution.md
data/2.算法中阶/4.leetcode-栈与队列/4.224-基本计算器/solution.md
+2
-2
data/2.算法中阶/4.leetcode-栈与队列/5.32-最长有效括号/solution.md
data/2.算法中阶/4.leetcode-栈与队列/5.32-最长有效括号/solution.md
+1
-1
data/2.算法中阶/4.leetcode-栈与队列/7.218-天际线问题/solution.md
data/2.算法中阶/4.leetcode-栈与队列/7.218-天际线问题/solution.md
+2
-2
data/2.算法中阶/4.leetcode-栈与队列/9.150-逆波兰表达式求值/solution.md
data/2.算法中阶/4.leetcode-栈与队列/9.150-逆波兰表达式求值/solution.md
+4
-4
data/2.算法中阶/5.leetcode-排序算法/10.378-有序矩阵中第 K 小的元素/solution.md
data/2.算法中阶/5.leetcode-排序算法/10.378-有序矩阵中第 K 小的元素/solution.md
+2
-2
data/2.算法中阶/5.leetcode-排序算法/2.324-摆动排序 II/solution.md
data/2.算法中阶/5.leetcode-排序算法/2.324-摆动排序 II/solution.md
+3
-3
data/2.算法中阶/5.leetcode-排序算法/3.274-H 指数/solution.md
data/2.算法中阶/5.leetcode-排序算法/3.274-H 指数/solution.md
+2
-2
data/2.算法中阶/5.leetcode-排序算法/4.347-前 K 个高频元素/solution.md
data/2.算法中阶/5.leetcode-排序算法/4.347-前 K 个高频元素/solution.md
+3
-3
data/2.算法中阶/5.leetcode-排序算法/5.354-俄罗斯套娃信封问题/solution.md
data/2.算法中阶/5.leetcode-排序算法/5.354-俄罗斯套娃信封问题/solution.md
+1
-1
data/2.算法中阶/5.leetcode-排序算法/7.327-区间和的个数/solution.md
data/2.算法中阶/5.leetcode-排序算法/7.327-区间和的个数/solution.md
+2
-2
data/2.算法中阶/6.leetcode-双指针/1.75-颜色分类/solution.md
data/2.算法中阶/6.leetcode-双指针/1.75-颜色分类/solution.md
+1
-1
data/2.算法中阶/6.leetcode-双指针/2.11-盛最多水的容器/solution.md
data/2.算法中阶/6.leetcode-双指针/2.11-盛最多水的容器/solution.md
+1
-1
data/2.算法中阶/6.leetcode-双指针/3.31-下一个排列/solution.md
data/2.算法中阶/6.leetcode-双指针/3.31-下一个排列/solution.md
+1
-1
data/2.算法中阶/6.leetcode-双指针/4.142-环形链表 II/solution.md
data/2.算法中阶/6.leetcode-双指针/4.142-环形链表 II/solution.md
+2
-2
data/2.算法中阶/6.leetcode-双指针/6.61-旋转链表/solution.md
data/2.算法中阶/6.leetcode-双指针/6.61-旋转链表/solution.md
+1
-1
data/2.算法中阶/6.leetcode-双指针/9.88-合并两个有序数组/solution.md
data/2.算法中阶/6.leetcode-双指针/9.88-合并两个有序数组/solution.md
+1
-1
data/3.算法高阶/1.leetcode-树/2.100-相同的树/solution.md
data/3.算法高阶/1.leetcode-树/2.100-相同的树/solution.md
+1
-1
data/3.算法高阶/1.leetcode-树/3.124-二叉树中的最大路径和/solution.md
data/3.算法高阶/1.leetcode-树/3.124-二叉树中的最大路径和/solution.md
+2
-2
data/3.算法高阶/1.leetcode-树/6.99-恢复二叉搜索树/solution.md
data/3.算法高阶/1.leetcode-树/6.99-恢复二叉搜索树/solution.md
+1
-1
data/3.算法高阶/1.leetcode-树/7.94-二叉树的中序遍历/solution.md
data/3.算法高阶/1.leetcode-树/7.94-二叉树的中序遍历/solution.md
+1
-1
data/3.算法高阶/1.leetcode-树/9.102-二叉树的层序遍历/solution.md
data/3.算法高阶/1.leetcode-树/9.102-二叉树的层序遍历/solution.md
+1
-1
data/3.算法高阶/2.leetcode-哈希表/10.166-分数到小数/solution.md
data/3.算法高阶/2.leetcode-哈希表/10.166-分数到小数/solution.md
+2
-2
data/3.算法高阶/2.leetcode-哈希表/2.205-同构字符串/solution.md
data/3.算法高阶/2.leetcode-哈希表/2.205-同构字符串/solution.md
+2
-2
data/3.算法高阶/2.leetcode-哈希表/3.36-有效的数独/solution.md
data/3.算法高阶/2.leetcode-哈希表/3.36-有效的数独/solution.md
+2
-2
data/3.算法高阶/2.leetcode-哈希表/4.41-缺失的第一个正数/solution.md
data/3.算法高阶/2.leetcode-哈希表/4.41-缺失的第一个正数/solution.md
+1
-1
data/3.算法高阶/2.leetcode-哈希表/5.76-最小覆盖子串/solution.md
data/3.算法高阶/2.leetcode-哈希表/5.76-最小覆盖子串/solution.md
+1
-1
data/3.算法高阶/2.leetcode-哈希表/7.126-单词接龙 II/solution.md
data/3.算法高阶/2.leetcode-哈希表/7.126-单词接龙 II/solution.md
+2
-2
data/3.算法高阶/2.leetcode-哈希表/8.127-单词接龙/solution.md
data/3.算法高阶/2.leetcode-哈希表/8.127-单词接龙/solution.md
+1
-1
data/3.算法高阶/2.leetcode-哈希表/9.128-最长连续序列/solution.md
data/3.算法高阶/2.leetcode-哈希表/9.128-最长连续序列/solution.md
+2
-2
data/3.算法高阶/3.leetcode-图与搜索/10.130-被围绕的区域/solution.md
data/3.算法高阶/3.leetcode-图与搜索/10.130-被围绕的区域/solution.md
+2
-2
data/3.算法高阶/3.leetcode-图与搜索/3.332-重新安排行程/solution.md
data/3.算法高阶/3.leetcode-图与搜索/3.332-重新安排行程/solution.md
+2
-2
data/3.算法高阶/3.leetcode-图与搜索/4.207-课程表/solution.md
data/3.算法高阶/3.leetcode-图与搜索/4.207-课程表/solution.md
+2
-2
data/3.算法高阶/3.leetcode-图与搜索/5.329-矩阵中的最长递增路径/solution.md
data/3.算法高阶/3.leetcode-图与搜索/5.329-矩阵中的最长递增路径/solution.md
+2
-2
data/3.算法高阶/3.leetcode-图与搜索/7.79-单词搜索/solution.md
data/3.算法高阶/3.leetcode-图与搜索/7.79-单词搜索/solution.md
+1
-1
data/3.算法高阶/3.leetcode-图与搜索/8.112-路径总和/solution.md
data/3.算法高阶/3.leetcode-图与搜索/8.112-路径总和/solution.md
+2
-2
data/3.算法高阶/3.leetcode-图与搜索/9.113-路径总和 II/solution.md
data/3.算法高阶/3.leetcode-图与搜索/9.113-路径总和 II/solution.md
+2
-2
data/3.算法高阶/4.leetcode-数学/10.60-排列序列/solution.md
data/3.算法高阶/4.leetcode-数学/10.60-排列序列/solution.md
+1
-1
data/3.算法高阶/4.leetcode-数学/3.50-Pow(x, n)/solution.md
data/3.算法高阶/4.leetcode-数学/3.50-Pow(x, n)/solution.md
+1
-1
data/3.算法高阶/4.leetcode-数学/4.9-回文数/solution.md
data/3.算法高阶/4.leetcode-数学/4.9-回文数/solution.md
+1
-1
data/3.算法高阶/4.leetcode-数学/5.66-加一/solution.md
data/3.算法高阶/4.leetcode-数学/5.66-加一/solution.md
+1
-1
data/3.算法高阶/4.leetcode-数学/6.7-整数反转/solution.md
data/3.算法高阶/4.leetcode-数学/6.7-整数反转/solution.md
+1
-1
data/3.算法高阶/5.leetcode-设计/10.297-二叉树的序列化与反序列化/solution.md
data/3.算法高阶/5.leetcode-设计/10.297-二叉树的序列化与反序列化/solution.md
+2
-2
data/3.算法高阶/5.leetcode-设计/4.460-LFU 缓存/solution.md
data/3.算法高阶/5.leetcode-设计/4.460-LFU 缓存/solution.md
+3
-3
data/3.算法高阶/5.leetcode-设计/5.146-LRU 缓存机制/solution.md
data/3.算法高阶/5.leetcode-设计/5.146-LRU 缓存机制/solution.md
+3
-3
data/3.算法高阶/5.leetcode-设计/6.173-二叉搜索树迭代器/solution.md
data/3.算法高阶/5.leetcode-设计/6.173-二叉搜索树迭代器/solution.md
+3
-3
data/3.算法高阶/5.leetcode-设计/7.208-实现 Trie (前缀树)/solution.md
data/3.算法高阶/5.leetcode-设计/7.208-实现 Trie (前缀树)/solution.md
+4
-14
data/3.算法高阶/6.leetcode-动态规划/1.22-括号生成/solution.md
data/3.算法高阶/6.leetcode-动态规划/1.22-括号生成/solution.md
+1
-1
data/3.算法高阶/6.leetcode-动态规划/10.63-不同路径 II/solution.md
data/3.算法高阶/6.leetcode-动态规划/10.63-不同路径 II/solution.md
+2
-2
data/3.算法高阶/6.leetcode-动态规划/2.64-最小路径和/solution.md
data/3.算法高阶/6.leetcode-动态规划/2.64-最小路径和/solution.md
+1
-1
data/3.算法高阶/6.leetcode-动态规划/3.91-解码方法/solution.md
data/3.算法高阶/6.leetcode-动态规划/3.91-解码方法/solution.md
+2
-2
data/3.算法高阶/6.leetcode-动态规划/4.10-正则表达式匹配/solution.md
data/3.算法高阶/6.leetcode-动态规划/4.10-正则表达式匹配/solution.md
+1
-1
data/3.算法高阶/6.leetcode-动态规划/5.5-最长回文子串/solution.md
data/3.算法高阶/6.leetcode-动态规划/5.5-最长回文子串/solution.md
+1
-1
data/3.算法高阶/6.leetcode-动态规划/6.53-最大子序和/solution.md
data/3.算法高阶/6.leetcode-动态规划/6.53-最大子序和/solution.md
+1
-1
data/3.算法高阶/6.leetcode-动态规划/7.62-不同路径/solution.md
data/3.算法高阶/6.leetcode-动态规划/7.62-不同路径/solution.md
+2
-2
data/3.算法高阶/6.leetcode-动态规划/8.72-编辑距离/solution.md
data/3.算法高阶/6.leetcode-动态规划/8.72-编辑距离/solution.md
+1
-1
data/3.算法高阶/6.leetcode-动态规划/9.85-最大矩形/solution.md
data/3.算法高阶/6.leetcode-动态规划/9.85-最大矩形/solution.md
+1
-1
data/3.算法高阶/7.leetcode-回溯算法/10.51-N 皇后/solution.md
data/3.算法高阶/7.leetcode-回溯算法/10.51-N 皇后/solution.md
+1
-1
data/3.算法高阶/7.leetcode-回溯算法/3.90-子集 II/solution.md
data/3.算法高阶/7.leetcode-回溯算法/3.90-子集 II/solution.md
+1
-1
data/3.算法高阶/7.leetcode-回溯算法/5.47-全排列 II/solution.md
data/3.算法高阶/7.leetcode-回溯算法/5.47-全排列 II/solution.md
+1
-1
data/3.算法高阶/7.leetcode-回溯算法/6.17-电话号码的字母组合/solution.md
data/3.算法高阶/7.leetcode-回溯算法/6.17-电话号码的字母组合/solution.md
+1
-1
data/3.算法高阶/8.leetcode-贪心/1.122-买卖股票的最佳时机 II/solution.md
data/3.算法高阶/8.leetcode-贪心/1.122-买卖股票的最佳时机 II/solution.md
+2
-2
data/3.算法高阶/8.leetcode-贪心/4.135-分发糖果/solution.md
data/3.算法高阶/8.leetcode-贪心/4.135-分发糖果/solution.md
+1
-1
data/3.算法高阶/8.leetcode-贪心/5.55-跳跃游戏/solution.md
data/3.算法高阶/8.leetcode-贪心/5.55-跳跃游戏/solution.md
+1
-1
data/3.算法高阶/8.leetcode-贪心/7.179-最大数/solution.md
data/3.算法高阶/8.leetcode-贪心/7.179-最大数/solution.md
+2
-2
data/3.算法高阶/8.leetcode-贪心/8.316-去除重复字母/solution.md
data/3.算法高阶/8.leetcode-贪心/8.316-去除重复字母/solution.md
+0
-0
未找到文件。
data/2.算法中阶/1.leetcode-数组/1.59-螺旋矩阵 II/solution.md
浏览文件 @
93c81596
# 螺旋矩阵 II
<p>给你一个正整数 <code>n</code> ,生成一个包含 <code>1</code> 到 <code>n<sup>2</sup></code> 所有元素,且元素按顺时针顺序螺旋排列的 <code>n x n</code> 正方形矩阵 <code>matrix</code> 。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0059.Spiral%20Matrix%20II/images/spiraln.jpg" style="width: 242px; height: 242px;" /><pre><strong>输入:</strong>n = 3<strong><br />输出:</strong>[[1,2,3],[8,9,4],[7,6,5]]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>n = 1<strong><br />输出:</strong>[[1]]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>1 <= n <= 20</code></li></ul>
<p>给你一个正整数 <code>n</code> ,生成一个包含 <code>1</code> 到 <code>n<sup>2</sup></code> 所有元素,且元素按顺时针顺序螺旋排列的 <code>n x n</code> 正方形矩阵 <code>matrix</code> 。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0059.Spiral%20Matrix%20II/images/spiraln.jpg" style="width: 242px; height: 242px;" /><pre><strong>输入:</strong>n = 3<strong><br />输出:</strong>[[1,2,3],[8,9,4],[7,6,5]]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>n = 1<strong><br />输出:</strong>[[1]]</pre
><p><strong>提示:</strong></p><ul> <li><code>1 <= n <= 20</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/10.48-旋转图像/solution.md
浏览文件 @
93c81596
# 旋转图像
<p>给定一个 <em>n </em>× <em>n</em> 的二维矩阵 <code>matrix</code> 表示一个图像。请你将图像顺时针旋转 90 度。</p><p>你必须在<strong><a href="https://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95" target="_blank"> 原地</a></strong> 旋转图像,这意味着你需要直接修改输入的二维矩阵。<strong>请不要 </strong>使用另一个矩阵来旋转图像。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0048.Rotate%20Image/images/mat1.jpg" style="width: 642px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,2,3],[4,5,6],[7,8,9]]<strong><br />输出:</strong>[[7,4,1],[8,5,2],[9,6,3]]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0048.Rotate%20Image/images/mat2.jpg" style="width: 800px; height: 321px;" /><pre><strong>输入:</strong>matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]<strong><br />输出:</strong>[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>matrix = [[1]]<strong><br />输出:</strong>[[1]]</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>matrix = [[1,2],[3,4]]<strong><br />输出:</strong>[[3,1],[4,2]]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>matrix.length == n</code></li> <li><code>matrix[i].length == n</code></li> <li><code>1 <= n <= 20</code></li> <li><code>-1000 <= matrix[i][j] <= 1000</code></li></ul>
<p>给定一个 <em>n </em>× <em>n</em> 的二维矩阵 <code>matrix</code> 表示一个图像。请你将图像顺时针旋转 90 度。</p><p>你必须在<strong><a href="https://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95" target="_blank"> 原地</a></strong> 旋转图像,这意味着你需要直接修改输入的二维矩阵。<strong>请不要 </strong>使用另一个矩阵来旋转图像。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0048.Rotate%20Image/images/mat1.jpg" style="width: 642px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,2,3],[4,5,6],[7,8,9]]<strong><br />输出:</strong>[[7,4,1],[8,5,2],[9,6,3]]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0048.Rotate%20Image/images/mat2.jpg" style="width: 800px; height: 321px;" /><pre><strong>输入:</strong>matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]<strong><br />输出:</strong>[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>matrix = [[1]]<strong><br />输出:</strong>[[1]]</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>matrix = [[1,2],[3,4]]<strong><br />输出:</strong>[[3,1],[4,2]]</pre
><p><strong>提示:</strong></p><ul> <li><code>matrix.length == n</code></li> <li><code>matrix[i].length == n</code></li> <li><code>1 <= n <= 20</code></li> <li><code>-1000 <= matrix[i][j] <= 1000</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
...
...
data/2.算法中阶/1.leetcode-数组/11.1-两数之和/solution.md
浏览文件 @
93c81596
# 两数之和
<p>
给定一个整数数组
<code>
nums
</code>
和一个整数目标值
<code>
target
</code>
,请你在该数组中找出
<strong>
和为目标值
</strong>
的那
<strong>
两个
</strong>
整数,并返回它们的数组下标。
</p><p>
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
</p><p>
你可以按任意顺序返回答案。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [2,7,11,15], target = 9
<strong><br
/>
输出:
</strong>
[0,1]
<strong><br
/>
解释:
</strong>
因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,2,4], target = 6
<strong><br
/>
输出:
</strong>
[1,2]
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,3], target = 6
<strong><br
/>
输出:
</strong>
[0,1]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
2
<
=
nums.length
<=
10<
sup
>
3
</sup></code></li>
<li><code>
-10
<sup>
9
</sup>
<
=
nums
[
i
]
<=
10<
sup
>
9
</sup></code></li>
<li><code>
-10
<sup>
9
</sup>
<
=
target
<=
10<
sup
>
9
</sup></code></li>
<li><strong>
只会存在一个有效答案
</strong></li></ul>
<p>
给定一个整数数组
<code>
nums
</code>
和一个整数目标值
<code>
target
</code>
,请你在该数组中找出
<strong>
和为目标值
</strong>
的那
<strong>
两个
</strong>
整数,并返回它们的数组下标。
</p><p>
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
</p><p>
你可以按任意顺序返回答案。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [2,7,11,15], target = 9
<strong><br
/>
输出:
</strong>
[0,1]
<strong><br
/>
解释:
</strong>
因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,2,4], target = 6
<strong><br
/>
输出:
</strong>
[1,2]
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,3], target = 6
<strong><br
/>
输出:
</strong>
[0,1]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
2
<
=
nums.length
<=
10<
sup
>
3
</sup></code></li>
<li><code>
-10
<sup>
9
</sup>
<
=
nums
[
i
]
<=
10<
sup
>
9
</sup></code></li>
<li><code>
-10
<sup>
9
</sup>
<
=
target
<=
10<
sup
>
9
</sup></code></li>
<li><strong>
只会存在一个有效答案
</strong></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/12.54-螺旋矩阵/solution.md
浏览文件 @
93c81596
# 螺旋矩阵
<p>给你一个 <code>m</code> 行 <code>n</code> 列的矩阵 <code>matrix</code> ,请按照 <strong>顺时针螺旋顺序</strong> ,返回矩阵中的所有元素。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0054.Spiral%20Matrix/images/spiral1.jpg" style="width: 242px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,2,3],[4,5,6],[7,8,9]]<strong><br />输出:</strong>[1,2,3,6,9,8,7,4,5]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0054.Spiral%20Matrix/images/spiral.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]<strong><br />输出:</strong>[1,2,3,4,8,12,11,10,9,5,6,7]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>m == matrix.length</code></li> <li><code>n == matrix[i].length</code></li> <li><code>1 <= m, n <= 10</code></li> <li><code>-100 <= matrix[i][j] <= 100</code></li></ul>
<p>给你一个 <code>m</code> 行 <code>n</code> 列的矩阵 <code>matrix</code> ,请按照 <strong>顺时针螺旋顺序</strong> ,返回矩阵中的所有元素。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0054.Spiral%20Matrix/images/spiral1.jpg" style="width: 242px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,2,3],[4,5,6],[7,8,9]]<strong><br />输出:</strong>[1,2,3,6,9,8,7,4,5]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0054.Spiral%20Matrix/images/spiral.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]<strong><br />输出:</strong>[1,2,3,4,8,12,11,10,9,5,6,7]</pre
><p><strong>提示:</strong></p><ul> <li><code>m == matrix.length</code></li> <li><code>n == matrix[i].length</code></li> <li><code>1 <= m, n <= 10</code></li> <li><code>-100 <= matrix[i][j] <= 100</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/13.80-删除有序数组中的重复项 II/solution.md
浏览文件 @
93c81596
...
...
@@ -4,7 +4,7 @@
target="_blank"> 原地
</a></strong>
删除重复出现的元素,使每个元素
<strong>
最多出现两次
</strong>
,返回删除后数组的新长度。
</p>
<p>
不要使用额外的数组空间,你必须在
<strong>
<a href="https://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95"
target="_blank">原地
</a>
修改输入数组
</strong>
并在使用 O(1) 额外空间的条件下完成。
</p>
<p>
</p>
<p><strong>
说明:
</strong></p>
<p>
为什么返回数值是整数,但输出的答案是数组呢?
</p>
<p>
请注意,输入数组是以
<strong>
「引用」
</strong>
方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
</p>
...
...
@@ -16,12 +16,12 @@
for (int i = 0; i < len; i++) {
print(nums[i]);
}
</pre>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [1,1,1,2,2,3]
<strong><br
/>
输出:
</strong>
5, nums = [1,1,2,2,3]
<strong><br
/>
解释:
</strong>
函数应返回新长度 length =
<strong>
5
</strong>
, 并且原数组的前五个元素被修改为
<strong>
1, 1, 2, 2,
</strong>
<strong>
3
</strong>
。 不需要考虑数组中超出新长度后面的元素。
</pre>
<p><strong>
示例 2:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [0,0,1,1,1,1,2,3,3]
<strong><br
/>
输出:
</strong>
7, nums = [0,0,1,1,2,3,3]
<strong><br
/>
解释:
</strong>
函数应返回新长度 length =
<strong>
7
</strong>
, 并且原数组的前五个元素被修改为
<strong>
0
</strong>
,
<strong>
0
</strong>
,
<strong>
1
</strong>
,
<strong>
1
</strong>
,
<strong>
2
</strong>
,
<strong>
3
</strong>
,
<strong>
3 。
</strong>
不需要考虑数组中超出新长度后面的元素。
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
1
<
=
nums.length
<=
3
*
10<
sup
>
4
</sup></code></li>
...
...
data/2.算法中阶/1.leetcode-数组/14.56-合并区间/solution.md
浏览文件 @
93c81596
# 合并区间
<p>
以数组
<code>
intervals
</code>
表示若干个区间的集合,其中单个区间为
<code>
intervals[i] = [start
<sub>
i
</sub>
, end
<sub>
i
</sub>
]
</code>
。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
intervals = [[1,3],[2,6],[8,10],[15,18]]
<strong><br
/>
输出:
</strong>
[[1,6],[8,10],[15,18]]
<strong><br
/>
解释:
</strong>
区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
intervals = [[1,4],[4,5]]
<strong><br
/>
输出:
</strong>
[[1,5]]
<strong><br
/>
解释:
</strong>
区间 [1,4] 和 [4,5] 可被视为重叠区间。
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
intervals.length
<=
10<
sup
>
4
</sup></code></li>
<li><code>
intervals[i].length == 2
</code></li>
<li><code>
0
<
=
start
<
sub
>
i
</sub>
<
=
end
<
sub
>
i
</sub>
<
=
10<
sup
>
4
</sup></code></li></ul>
<p>
以数组
<code>
intervals
</code>
表示若干个区间的集合,其中单个区间为
<code>
intervals[i] = [start
<sub>
i
</sub>
, end
<sub>
i
</sub>
]
</code>
。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
intervals = [[1,3],[2,6],[8,10],[15,18]]
<strong><br
/>
输出:
</strong>
[[1,6],[8,10],[15,18]]
<strong><br
/>
解释:
</strong>
区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
intervals = [[1,4],[4,5]]
<strong><br
/>
输出:
</strong>
[[1,5]]
<strong><br
/>
解释:
</strong>
区间 [1,4] 和 [4,5] 可被视为重叠区间。
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
intervals.length
<=
10<
sup
>
4
</sup></code></li>
<li><code>
intervals[i].length == 2
</code></li>
<li><code>
0
<
=
start
<
sub
>
i
</sub>
<
=
end
<
sub
>
i
</sub>
<
=
10<
sup
>
4
</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/15.73-矩阵置零/solution.md
浏览文件 @
93c81596
# 矩阵置零
<p>给定一个 <code><em>m</em> x <em>n</em></code> 的矩阵,如果一个元素为 <strong>0 </strong>,则将其所在行和列的所有元素都设为 <strong>0</strong> 。请使用 <strong><a href="http://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95" target="_blank">原地</a></strong> 算法<strong>。</strong></p><p><strong>进阶:</strong></p><ul> <li>一个直观的解决方案是使用 <code>O(<em>m</em><em>n</em>)</code> 的额外空间,但这并不是一个好的解决方案。</li> <li>一个简单的改进方案是使用 <code>O(<em>m</em> + <em>n</em>)</code> 的额外空间,但这仍然不是最好的解决方案。</li> <li>你能想出一个仅使用常量空间的解决方案吗?</li></ul><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0073.Set%20Matrix%20Zeroes/images/mat1.jpg" style="width: 450px; height: 169px;" /><pre><strong>输入:</strong>matrix = [[1,1,1],[1,0,1],[1,1,1]]<strong><br />输出:</strong>[[1,0,1],[0,0,0],[1,0,1]]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0073.Set%20Matrix%20Zeroes/images/mat2.jpg" style="width: 450px; height: 137px;" /><pre><strong>输入:</strong>matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]<strong><br />输出:</strong>[[0,0,0,0],[0,4,5,0],[0,3,1,0]]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>m == matrix.length</code></li> <li><code>n == matrix[0].length</code></li> <li><code>1 <= m, n <= 200</code></li> <li><code>-2<sup>31</sup> <= matrix[i][j] <= 2<sup>31</sup> - 1</code></li></ul>
<p>给定一个 <code><em>m</em> x <em>n</em></code> 的矩阵,如果一个元素为 <strong>0 </strong>,则将其所在行和列的所有元素都设为 <strong>0</strong> 。请使用 <strong><a href="http://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95" target="_blank">原地</a></strong> 算法<strong>。</strong></p><p><strong>进阶:</strong></p><ul> <li>一个直观的解决方案是使用 <code>O(<em>m</em><em>n</em>)</code> 的额外空间,但这并不是一个好的解决方案。</li> <li>一个简单的改进方案是使用 <code>O(<em>m</em> + <em>n</em>)</code> 的额外空间,但这仍然不是最好的解决方案。</li> <li>你能想出一个仅使用常量空间的解决方案吗?</li></ul><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0073.Set%20Matrix%20Zeroes/images/mat1.jpg" style="width: 450px; height: 169px;" /><pre><strong>输入:</strong>matrix = [[1,1,1],[1,0,1],[1,1,1]]<strong><br />输出:</strong>[[1,0,1],[0,0,0],[1,0,1]]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0073.Set%20Matrix%20Zeroes/images/mat2.jpg" style="width: 450px; height: 137px;" /><pre><strong>输入:</strong>matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]<strong><br />输出:</strong>[[0,0,0,0],[0,4,5,0],[0,3,1,0]]</pre
><p><strong>提示:</strong></p><ul> <li><code>m == matrix.length</code></li> <li><code>n == matrix[0].length</code></li> <li><code>1 <= m, n <= 200</code></li> <li><code>-2<sup>31</sup> <= matrix[i][j] <= 2<sup>31</sup> - 1</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/16.74-搜索二维矩阵/solution.md
浏览文件 @
93c81596
# 搜索二维矩阵
<p>编写一个高效的算法来判断 <code>m x n</code> 矩阵中,是否存在一个目标值。该矩阵具有如下特性:</p><ul> <li>每行中的整数从左到右按升序排列。</li> <li>每行的第一个整数大于前一行的最后一个整数。</li></ul><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0074.Search%20a%202D%20Matrix/images/mat.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3<strong><br />输出:</strong>true</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0074.Search%20a%202D%20Matrix/images/mat2.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13<strong><br />输出:</strong>false</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>m == matrix.length</code></li> <li><code>n == matrix[i].length</code></li> <li><code>1 <= m, n <= 100</code></li> <li><code>-10<sup>4</sup> <= matrix[i][j], target <= 10<sup>4</sup></code></li></ul>
<p>编写一个高效的算法来判断 <code>m x n</code> 矩阵中,是否存在一个目标值。该矩阵具有如下特性:</p><ul> <li>每行中的整数从左到右按升序排列。</li> <li>每行的第一个整数大于前一行的最后一个整数。</li></ul><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0074.Search%20a%202D%20Matrix/images/mat.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3<strong><br />输出:</strong>true</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0074.Search%20a%202D%20Matrix/images/mat2.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13<strong><br />输出:</strong>false</pre
><p><strong>提示:</strong></p><ul> <li><code>m == matrix.length</code></li> <li><code>n == matrix[i].length</code></li> <li><code>1 <= m, n <= 100</code></li> <li><code>-10<sup>4</sup> <= matrix[i][j], target <= 10<sup>4</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/2.81-搜索旋转排序数组 II/solution.md
浏览文件 @
93c81596
...
...
@@ -9,12 +9,12 @@
<p>
给你
<strong>
旋转后
</strong>
的数组
<code>
nums
</code>
和一个整数
<code>
target
</code>
,请你编写一个函数来判断给定的目标值是否存在于数组中。如果
<code>
nums
</code>
中存在这个目标值
<code>
target
</code>
,则返回
<code>
true
</code>
,否则返回
<code>
false
</code>
。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [2,5,6,0,0,1,2], target = 0
<strong><br
/>
输出:
</strong>
true
</pre>
<p><strong>
示例 2:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [2,5,6,0,0,1,2], target = 3
<strong><br
/>
输出:
</strong>
false
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
1
<
=
nums.length
<=
5000</
code
></li>
...
...
@@ -22,7 +22,7 @@
<li>
题目数据保证
<code>
nums
</code>
在预先未知的某个下标上进行了旋转
</li>
<li><code>
-10
<sup>
4
</sup>
<
=
target
<=
10<
sup
>
4
</sup></code></li>
</ul>
<p>
</p>
<p><strong>
进阶:
</strong></p>
<ul>
<li>
这是 <a
...
...
data/2.算法中阶/1.leetcode-数组/3.18-四数之和/solution.md
浏览文件 @
93c81596
# 四数之和
<p>
给定一个包含
<em>
n
</em>
个整数的数组
<code>
nums
</code>
和一个目标值
<code>
target
</code>
,判断
<code>
nums
</code>
中是否存在四个元素
<em>
a,
</em><em>
b,c
</em>
和
<em>
d
</em>
,使得
<em>
a
</em>
+
<em>
b
</em>
+
<em>
c
</em>
+
<em>
d
</em>
的值与
<code>
target
</code>
相等?找出所有满足条件且不重复的四元组。
</p><p><strong>
注意:
</strong>
答案中不可以包含重复的四元组。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,0,-1,0,-2,2], target = 0
<strong><br
/>
输出:
</strong>
[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [], target = 0
<strong><br
/>
输出:
</strong>
[]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
nums.length
<=
200</
code
></li>
<li><code>
-10
<sup>
9
</sup>
<
=
nums
[
i
]
<=
10<
sup
>
9
</sup></code></li>
<li><code>
-10
<sup>
9
</sup>
<
=
target
<=
10<
sup
>
9
</sup></code></li></ul>
<p>
给定一个包含
<em>
n
</em>
个整数的数组
<code>
nums
</code>
和一个目标值
<code>
target
</code>
,判断
<code>
nums
</code>
中是否存在四个元素
<em>
a,
</em><em>
b,c
</em>
和
<em>
d
</em>
,使得
<em>
a
</em>
+
<em>
b
</em>
+
<em>
c
</em>
+
<em>
d
</em>
的值与
<code>
target
</code>
相等?找出所有满足条件且不重复的四元组。
</p><p><strong>
注意:
</strong>
答案中不可以包含重复的四元组。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,0,-1,0,-2,2], target = 0
<strong><br
/>
输出:
</strong>
[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [], target = 0
<strong><br
/>
输出:
</strong>
[]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
nums.length
<=
200</
code
></li>
<li><code>
-10
<sup>
9
</sup>
<
=
nums
[
i
]
<=
10<
sup
>
9
</sup></code></li>
<li><code>
-10
<sup>
9
</sup>
<
=
target
<=
10<
sup
>
9
</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/4.57-插入区间/solution.md
浏览文件 @
93c81596
...
...
@@ -2,7 +2,7 @@
<p>
给你一个
<strong>
无重叠的
</strong><em>
,
</em>
按照区间起始端点排序的区间列表。
</p>
<p>
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<pre><strong>
输入:
</strong>
intervals = [[1,3],[6,9]], newInterval = [2,5]
<strong><br
/>
输出:
</strong>
[[1,5],[6,9]]
</pre>
<p><strong>
示例 2:
</strong></p>
...
...
@@ -13,7 +13,7 @@
<pre><strong>
输入:
</strong>
intervals = [[1,5]], newInterval = [2,3]
<strong><br
/>
输出:
</strong>
[[1,5]]
</pre>
<p><strong>
示例 5:
</strong></p>
<pre><strong>
输入:
</strong>
intervals = [[1,5]], newInterval = [2,7]
<strong><br
/>
输出:
</strong>
[[1,7]]
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
0
<
=
intervals.length
<=
10<
sup
>
4
</sup></code></li>
...
...
data/2.算法中阶/1.leetcode-数组/5.4-寻找两个正序数组的中位数/solution.md
浏览文件 @
93c81596
# 寻找两个正序数组的中位数
<p>
给定两个大小分别为
<code>
m
</code>
和
<code>
n
</code>
的正序(从小到大)数组
<code>
nums1
</code>
和
<code>
nums2
</code>
。请你找出并返回这两个正序数组的
<strong>
中位数
</strong>
。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [1,3], nums2 = [2]
<strong><br
/>
输出:
</strong>
2.00000
<strong><br
/>
解释:
</strong>
合并数组 = [1,2,3] ,中位数 2
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [1,2], nums2 = [3,4]
<strong><br
/>
输出:
</strong>
2.50000
<strong><br
/>
解释:
</strong>
合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [0,0], nums2 = [0,0]
<strong><br
/>
输出:
</strong>
0.00000
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [], nums2 = [1]
<strong><br
/>
输出:
</strong>
1.00000
</pre><p><strong>
示例 5:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [2], nums2 = []
<strong><br
/>
输出:
</strong>
2.00000
</pre><p>
</p><p><strong>
提示:
</strong></p><ul>
<li><code>
nums1.length == m
</code></li>
<li><code>
nums2.length == n
</code></li>
<li><code>
0
<
=
m
<=
1000</
code
></li>
<li><code>
0
<
=
n
<=
1000</
code
></li>
<li><code>
1
<
=
m
+
n
<=
2000</
code
></li>
<li><code>
-10
<sup>
6
</sup>
<
=
nums1
[
i
],
nums2
[
i
]
<=
10<
sup
>
6
</sup></code></li></ul><p>
</p
><p><strong>
进阶:
</strong>
你能设计一个时间复杂度为
<code>
O(log (m+n))
</code>
的算法解决此问题吗?
</p>
<p>
给定两个大小分别为
<code>
m
</code>
和
<code>
n
</code>
的正序(从小到大)数组
<code>
nums1
</code>
和
<code>
nums2
</code>
。请你找出并返回这两个正序数组的
<strong>
中位数
</strong>
。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [1,3], nums2 = [2]
<strong><br
/>
输出:
</strong>
2.00000
<strong><br
/>
解释:
</strong>
合并数组 = [1,2,3] ,中位数 2
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [1,2], nums2 = [3,4]
<strong><br
/>
输出:
</strong>
2.50000
<strong><br
/>
解释:
</strong>
合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [0,0], nums2 = [0,0]
<strong><br
/>
输出:
</strong>
0.00000
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [], nums2 = [1]
<strong><br
/>
输出:
</strong>
1.00000
</pre><p><strong>
示例 5:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [2], nums2 = []
<strong><br
/>
输出:
</strong>
2.00000
</pre><p><strong>
提示:
</strong></p><ul>
<li><code>
nums1.length == m
</code></li>
<li><code>
nums2.length == n
</code></li>
<li><code>
0
<
=
m
<=
1000</
code
></li>
<li><code>
0
<
=
n
<=
1000</
code
></li>
<li><code>
1
<
=
m
+
n
<=
2000</
code
></li>
<li><code>
-10
<sup>
6
</sup>
<
=
nums1
[
i
],
nums2
[
i
]
<=
10<
sup
>
6
</sup></code></li></ul
><p><strong>
进阶:
</strong>
你能设计一个时间复杂度为
<code>
O(log (m+n))
</code>
的算法解决此问题吗?
</p>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/6.78-子集/solution.md
浏览文件 @
93c81596
# 子集
<p>
给你一个整数数组
<code>
nums
</code>
,数组中的元素
<strong>
互不相同
</strong>
。返回该数组所有可能的子集(幂集)。
</p><p>
解集
<strong>
不能
</strong>
包含重复的子集。你可以按
<strong>
任意顺序
</strong>
返回解集。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,3]
<strong><br
/>
输出:
</strong>
[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
[[],[0]]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
10</
code
></li>
<li><code>
-10
<
=
nums
[
i
]
<=
10</
code
></li>
<li><code>
nums
</code>
中的所有元素
<strong>
互不相同
</strong></li></ul>
<p>
给你一个整数数组
<code>
nums
</code>
,数组中的元素
<strong>
互不相同
</strong>
。返回该数组所有可能的子集(幂集)。
</p><p>
解集
<strong>
不能
</strong>
包含重复的子集。你可以按
<strong>
任意顺序
</strong>
返回解集。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,3]
<strong><br
/>
输出:
</strong>
[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
[[],[0]]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
10</
code
></li>
<li><code>
-10
<
=
nums
[
i
]
<=
10</
code
></li>
<li><code>
nums
</code>
中的所有元素
<strong>
互不相同
</strong></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/7.33-搜索旋转排序数组/solution.md
浏览文件 @
93c81596
...
...
@@ -8,14 +8,14 @@
<p>
给你
<strong>
旋转后
</strong>
的数组
<code>
nums
</code>
和一个整数
<code>
target
</code>
,如果
<code>
nums
</code>
中存在这个目标值
<code>
target
</code>
,则返回它的下标,否则返回
<code>
-1
</code>
。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [4,5,6,7,0,1,2], target = 0
<strong><br
/>
输出:
</strong>
4
</pre>
<p><strong>
示例 2:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [4,5,6,7,0,1,2], target = 3
<strong><br
/>
输出:
</strong>
-1
</pre>
<p><strong>
示例 3:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [1], target = 0
<strong><br
/>
输出:
</strong>
-1
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
1
<
=
nums.length
<=
5000</
code
></li>
...
...
@@ -24,7 +24,7 @@
<li>
题目数据保证
<code>
nums
</code>
在预先未知的某个下标上进行了旋转
</li>
<li><code>
-10^4
<
=
target
<=
10^4</
code
></li>
</ul>
<p>
</p>
<p><strong>
进阶:
</strong>
你可以设计一个时间复杂度为
<code>
O(log n)
</code>
的解决方案吗?
</p>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
...
...
data/2.算法中阶/1.leetcode-数组/8.15-三数之和/solution.md
浏览文件 @
93c81596
# 三数之和
<p>
给你一个包含
<code>
n
</code>
个整数的数组
<code>
nums
</code>
,判断
<code>
nums
</code>
中是否存在三个元素
<em>
a,b,c ,
</em>
使得
<em>
a + b + c =
</em>
0 ?请你找出所有和为
<code>
0
</code>
且不重复的三元组。
</p><p><strong>
注意:
</strong>
答案中不可以包含重复的三元组。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [-1,0,1,2,-1,-4]
<strong><br
/>
输出:
</strong>
[[-1,-1,2],[-1,0,1]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = []
<strong><br
/>
输出:
</strong>
[]
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
[]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
nums.length
<=
3000</
code
></li>
<li><code>
-10
<sup>
5
</sup>
<
=
nums
[
i
]
<=
10<
sup
>
5
</sup></code></li></ul>
<p>
给你一个包含
<code>
n
</code>
个整数的数组
<code>
nums
</code>
,判断
<code>
nums
</code>
中是否存在三个元素
<em>
a,b,c ,
</em>
使得
<em>
a + b + c =
</em>
0 ?请你找出所有和为
<code>
0
</code>
且不重复的三元组。
</p><p><strong>
注意:
</strong>
答案中不可以包含重复的三元组。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [-1,0,1,2,-1,-4]
<strong><br
/>
输出:
</strong>
[[-1,-1,2],[-1,0,1]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = []
<strong><br
/>
输出:
</strong>
[]
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
[]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
nums.length
<=
3000</
code
></li>
<li><code>
-10
<sup>
5
</sup>
<
=
nums
[
i
]
<=
10<
sup
>
5
</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/1.leetcode-数组/9.34-在排序数组中查找元素的第一个和最后一个位置/solution.md
浏览文件 @
93c81596
...
...
@@ -6,14 +6,14 @@
<ul>
<li>
你可以设计并实现时间复杂度为
<code>
O(log n)
</code>
的算法解决此问题吗?
</li>
</ul>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [5,7,7,8,8,10], target = 8
<strong><br
/>
输出:
</strong>
[3,4]
</pre>
<p><strong>
示例 2:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [5,7,7,8,8,10], target = 6
<strong><br
/>
输出:
</strong>
[-1,-1]
</pre>
<p><strong>
示例 3:
</strong></p>
<pre><strong>
输入:
</strong>
nums = [], target = 0
<strong><br
/>
输出:
</strong>
[-1,-1]
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
0
<
=
nums.length
<=
10<
sup
>
5
</sup></code></li>
...
...
data/2.算法中阶/2.leetcode-链表/1.82-删除排序链表中的重复元素 II/solution.md
浏览文件 @
93c81596
# 删除排序链表中的重复元素 II
<p>存在一个按升序排列的链表,给你这个链表的头节点 <code>head</code> ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 <strong>没有重复出现</strong><em> </em>的数字。</p><p>返回同样按升序排列的结果链表。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0082.Remove%20Duplicates%20from%20Sorted%20List%20II/images/linkedlist1.jpg" style="width: 500px; height: 142px;" /><pre><strong>输入:</strong>head = [1,2,3,3,4,4,5]<strong><br />输出:</strong>[1,2,5]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0082.Remove%20Duplicates%20from%20Sorted%20List%20II/images/linkedlist2.jpg" style="width: 500px; height: 205px;" /><pre><strong>输入:</strong>head = [1,1,1,2,3]<strong><br />输出:</strong>[2,3]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li>链表中节点数目在范围 <code>[0, 300]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li> <li>题目数据保证链表已经按升序排列</li></ul>
<p>存在一个按升序排列的链表,给你这个链表的头节点 <code>head</code> ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 <strong>没有重复出现</strong><em> </em>的数字。</p><p>返回同样按升序排列的结果链表。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0082.Remove%20Duplicates%20from%20Sorted%20List%20II/images/linkedlist1.jpg" style="width: 500px; height: 142px;" /><pre><strong>输入:</strong>head = [1,2,3,3,4,4,5]<strong><br />输出:</strong>[1,2,5]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0082.Remove%20Duplicates%20from%20Sorted%20List%20II/images/linkedlist2.jpg" style="width: 500px; height: 205px;" /><pre><strong>输入:</strong>head = [1,1,1,2,3]<strong><br />输出:</strong>[2,3]</pre
><p><strong>提示:</strong></p><ul> <li>链表中节点数目在范围 <code>[0, 300]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li> <li>题目数据保证链表已经按升序排列</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/2.leetcode-链表/10.21-合并两个有序链表/solution.md
浏览文件 @
93c81596
# 合并两个有序链表
<p>将两个升序链表合并为一个新的 <strong>升序</strong> 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 </p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0021.Merge%20Two%20Sorted%20Lists/images/merge_ex1.jpg" style="width: 662px; height: 302px;" /><pre><strong>输入:</strong>l1 = [1,2,4], l2 = [1,3,4]<strong><br />输出:</strong>[1,1,2,3,4,4]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>l1 = [], l2 = []<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>l1 = [], l2 = [0]<strong><br />输出:</strong>[0]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li>两个链表的节点数目范围是 <code>[0, 50]</code></li> <li><code>-100 <= Node.val <= 100</code></li> <li><code>l1</code> 和 <code>l2</code> 均按 <strong>非递减顺序</strong> 排列</li></ul>
<p>将两个升序链表合并为一个新的 <strong>升序</strong> 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 </p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0021.Merge%20Two%20Sorted%20Lists/images/merge_ex1.jpg" style="width: 662px; height: 302px;" /><pre><strong>输入:</strong>l1 = [1,2,4], l2 = [1,3,4]<strong><br />输出:</strong>[1,1,2,3,4,4]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>l1 = [], l2 = []<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>l1 = [], l2 = [0]<strong><br />输出:</strong>[0]</pre
><p><strong>提示:</strong></p><ul> <li>两个链表的节点数目范围是 <code>[0, 50]</code></li> <li><code>-100 <= Node.val <= 100</code></li> <li><code>l1</code> 和 <code>l2</code> 均按 <strong>非递减顺序</strong> 排列</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/2.leetcode-链表/2.19-删除链表的倒数第 N 个结点/solution.md
浏览文件 @
93c81596
# 删除链表的倒数第 N 个结点
<p>给你一个链表,删除链表的倒数第 <code>n</code><em> </em>个结点,并且返回链表的头结点。</p><p><strong>进阶:</strong>你能尝试使用一趟扫描实现吗?</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0019.Remove%20Nth%20Node%20From%20End%20of%20List/images/remove_ex1.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], n = 2<strong><br />输出:</strong>[1,2,3,5]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>head = [1], n = 1<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>head = [1,2], n = 1<strong><br />输出:</strong>[1]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li>链表中结点的数目为 <code>sz</code></li> <li><code>1 <= sz <= 30</code></li> <li><code>0 <= Node.val <= 100</code></li> <li><code>1 <= n <= sz</code></li></ul>
<p>给你一个链表,删除链表的倒数第 <code>n</code><em> </em>个结点,并且返回链表的头结点。</p><p><strong>进阶:</strong>你能尝试使用一趟扫描实现吗?</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0019.Remove%20Nth%20Node%20From%20End%20of%20List/images/remove_ex1.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], n = 2<strong><br />输出:</strong>[1,2,3,5]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>head = [1], n = 1<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>head = [1,2], n = 1<strong><br />输出:</strong>[1]</pre
><p><strong>提示:</strong></p><ul> <li>链表中结点的数目为 <code>sz</code></li> <li><code>1 <= sz <= 30</code></li> <li><code>0 <= Node.val <= 100</code></li> <li><code>1 <= n <= sz</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/2.leetcode-链表/3.83-删除排序链表中的重复元素/solution.md
浏览文件 @
93c81596
# 删除排序链表中的重复元素
<p>存在一个按升序排列的链表,给你这个链表的头节点 <code>head</code> ,请你删除所有重复的元素,使每个元素 <strong>只出现一次</strong> 。</p><p>返回同样按升序排列的结果链表。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0083.Remove%20Duplicates%20from%20Sorted%20List/images/list1.jpg" style="width: 302px; height: 242px;" /><pre><strong>输入:</strong>head = [1,1,2]<strong><br />输出:</strong>[1,2]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0083.Remove%20Duplicates%20from%20Sorted%20List/images/list2.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,1,2,3,3]<strong><br />输出:</strong>[1,2,3]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li>链表中节点数目在范围 <code>[0, 300]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li> <li>题目数据保证链表已经按升序排列</li></ul>
<p>存在一个按升序排列的链表,给你这个链表的头节点 <code>head</code> ,请你删除所有重复的元素,使每个元素 <strong>只出现一次</strong> 。</p><p>返回同样按升序排列的结果链表。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0083.Remove%20Duplicates%20from%20Sorted%20List/images/list1.jpg" style="width: 302px; height: 242px;" /><pre><strong>输入:</strong>head = [1,1,2]<strong><br />输出:</strong>[1,2]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0083.Remove%20Duplicates%20from%20Sorted%20List/images/list2.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,1,2,3,3]<strong><br />输出:</strong>[1,2,3]</pre
><p><strong>提示:</strong></p><ul> <li>链表中节点数目在范围 <code>[0, 300]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li> <li>题目数据保证链表已经按升序排列</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/2.leetcode-链表/4.25-K 个一组翻转链表/solution.md
浏览文件 @
93c81596
# K 个一组翻转链表
<p>给你一个链表,每 <em>k </em>个节点一组进行翻转,请你返回翻转后的链表。</p><p><em>k </em>是一个正整数,它的值小于或等于链表的长度。</p><p>如果节点总数不是 <em>k </em>的整数倍,那么请将最后剩余的节点保持原有顺序。</p><p><strong>进阶:</strong></p><ul> <li>你可以设计一个只使用常数额外空间的算法来解决此问题吗?</li> <li><strong>你不能只是单纯的改变节点内部的值</strong>,而是需要实际进行节点交换。</li></ul><p>
</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0025.Reverse%20Nodes%20in%20k-Group/images/reverse_ex1.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], k = 2<strong><br />输出:</strong>[2,1,4,3,5]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0025.Reverse%20Nodes%20in%20k-Group/images/reverse_ex2.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], k = 3<strong><br />输出:</strong>[3,2,1,4,5]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>head = [1,2,3,4,5], k = 1<strong><br />输出:</strong>[1,2,3,4,5]</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>head = [1], k = 1<strong><br />输出:</strong>[1]</pre><ul></ul><p><strong>提示:</strong></p><ul> <li>列表中节点的数量在范围 <code>sz</code> 内</li> <li><code>1 <= sz <= 5000</code></li> <li><code>0 <= Node.val <= 1000</code></li> <li><code>1 <= k <= sz</code></li></ul>
<p>给你一个链表,每 <em>k </em>个节点一组进行翻转,请你返回翻转后的链表。</p><p><em>k </em>是一个正整数,它的值小于或等于链表的长度。</p><p>如果节点总数不是 <em>k </em>的整数倍,那么请将最后剩余的节点保持原有顺序。</p><p><strong>进阶:</strong></p><ul> <li>你可以设计一个只使用常数额外空间的算法来解决此问题吗?</li> <li><strong>你不能只是单纯的改变节点内部的值</strong>,而是需要实际进行节点交换。</li></ul><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0025.Reverse%20Nodes%20in%20k-Group/images/reverse_ex1.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], k = 2<strong><br />输出:</strong>[2,1,4,3,5]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0025.Reverse%20Nodes%20in%20k-Group/images/reverse_ex2.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], k = 3<strong><br />输出:</strong>[3,2,1,4,5]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>head = [1,2,3,4,5], k = 1<strong><br />输出:</strong>[1,2,3,4,5]</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>head = [1], k = 1<strong><br />输出:</strong>[1]</pre><ul></ul><p><strong>提示:</strong></p><ul> <li>列表中节点的数量在范围 <code>sz</code> 内</li> <li><code>1 <= sz <= 5000</code></li> <li><code>0 <= Node.val <= 1000</code></li> <li><code>1 <= k <= sz</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/2.leetcode-链表/5.86-分隔链表/solution.md
浏览文件 @
93c81596
# 分隔链表
<p>给你一个链表的头节点 <code>head</code> 和一个特定值<em> </em><code>x</code> ,请你对链表进行分隔,使得所有 <strong>小于</strong> <code>x</code> 的节点都出现在 <strong>大于或等于</strong> <code>x</code> 的节点之前。</p><p>你应当 <strong>保留</strong> 两个分区中每个节点的初始相对位置。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0086.Partition%20List/images/partition.jpg" style="width: 662px; height: 222px;" /><pre><strong>输入:</strong>head = [1,4,3,2,5,2], x = 3<strong><br />输出</strong>:[1,2,2,4,3,5]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>head = [2,1], x = 2<strong><br />输出</strong>:[1,2]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li>链表中节点的数目在范围 <code>[0, 200]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li> <li><code>-200 <= x <= 200</code></li></ul>
<p>给你一个链表的头节点 <code>head</code> 和一个特定值<em> </em><code>x</code> ,请你对链表进行分隔,使得所有 <strong>小于</strong> <code>x</code> 的节点都出现在 <strong>大于或等于</strong> <code>x</code> 的节点之前。</p><p>你应当 <strong>保留</strong> 两个分区中每个节点的初始相对位置。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0086.Partition%20List/images/partition.jpg" style="width: 662px; height: 222px;" /><pre><strong>输入:</strong>head = [1,4,3,2,5,2], x = 3<strong><br />输出</strong>:[1,2,2,4,3,5]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>head = [2,1], x = 2<strong><br />输出</strong>:[1,2]</pre
><p><strong>提示:</strong></p><ul> <li>链表中节点的数目在范围 <code>[0, 200]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li> <li><code>-200 <= x <= 200</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/2.leetcode-链表/7.92-反转链表 II/solution.md
浏览文件 @
93c81596
# 反转链表 II
给你单链表的头指针
<code>head</code> 和两个整数 <code>left</code> 和 <code>right</code> ,其中 <code>left <= right</code> 。请你反转从位置 <code>left</code> 到位置 <code>right</code> 的链表节点,返回 <strong>反转后的链表</strong> 。<p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0092.Reverse%20Linked%20List%20II/images/rev2ex2.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], left = 2, right = 4<strong><br />输出:</strong>[1,4,3,2,5]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>head = [5], left = 1, right = 1<strong><br />输出:</strong>[5]</pre><p> </p><p><strong>提示:</strong></p><ul> <li>链表中节点数目为 <code>n</code></li> <li><code>1 <= n <= 500</code></li> <li><code>-500 <= Node.val <= 500</code></li> <li><code>1 <= left <= right <= n</code></li></ul><p> </p
><p><strong>进阶:</strong> 你可以使用一趟扫描完成反转吗?</p>
给你单链表的头指针
<code>head</code> 和两个整数 <code>left</code> 和 <code>right</code> ,其中 <code>left <= right</code> 。请你反转从位置 <code>left</code> 到位置 <code>right</code> 的链表节点,返回 <strong>反转后的链表</strong> 。<p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0092.Reverse%20Linked%20List%20II/images/rev2ex2.jpg" style="width: 542px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], left = 2, right = 4<strong><br />输出:</strong>[1,4,3,2,5]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>head = [5], left = 1, right = 1<strong><br />输出:</strong>[5]</pre><p><strong>提示:</strong></p><ul> <li>链表中节点数目为 <code>n</code></li> <li><code>1 <= n <= 500</code></li> <li><code>-500 <= Node.val <= 500</code></li> <li><code>1 <= left <= right <= n</code></li></ul
><p><strong>进阶:</strong> 你可以使用一趟扫描完成反转吗?</p>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/2.leetcode-链表/8.2-两数相加/solution.md
浏览文件 @
93c81596
# 两数相加
<p>给你两个 <strong>非空</strong> 的链表,表示两个非负的整数。它们每位数字都是按照 <strong>逆序</strong> 的方式存储的,并且每个节点只能存储 <strong>一位</strong> 数字。</p><p>请你将两个数相加,并以相同形式返回一个表示和的链表。</p><p>你可以假设除了数字 0 之外,这两个数都不会以 0 开头。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0002.Add%20Two%20Numbers/images/addtwonumber1.jpg" style="width: 483px; height: 342px;" /><pre><strong>输入:</strong>l1 = [2,4,3], l2 = [5,6,4]<strong><br />输出:</strong>[7,0,8]<strong><br />解释:</strong>342 + 465 = 807.</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>l1 = [0], l2 = [0]<strong><br />输出:</strong>[0]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]<strong><br />输出:</strong>[8,9,9,9,0,0,0,1]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li>每个链表中的节点数在范围 <code>[1, 100]</code> 内</li> <li><code>0 <= Node.val <= 9</code></li> <li>题目数据保证列表表示的数字不含前导零</li></ul>
<p>给你两个 <strong>非空</strong> 的链表,表示两个非负的整数。它们每位数字都是按照 <strong>逆序</strong> 的方式存储的,并且每个节点只能存储 <strong>一位</strong> 数字。</p><p>请你将两个数相加,并以相同形式返回一个表示和的链表。</p><p>你可以假设除了数字 0 之外,这两个数都不会以 0 开头。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0002.Add%20Two%20Numbers/images/addtwonumber1.jpg" style="width: 483px; height: 342px;" /><pre><strong>输入:</strong>l1 = [2,4,3], l2 = [5,6,4]<strong><br />输出:</strong>[7,0,8]<strong><br />解释:</strong>342 + 465 = 807.</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>l1 = [0], l2 = [0]<strong><br />输出:</strong>[0]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]<strong><br />输出:</strong>[8,9,9,9,0,0,0,1]</pre
><p><strong>提示:</strong></p><ul> <li>每个链表中的节点数在范围 <code>[1, 100]</code> 内</li> <li><code>0 <= Node.val <= 9</code></li> <li>题目数据保证列表表示的数字不含前导零</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/2.leetcode-链表/9.24-两两交换链表中的节点/solution.md
浏览文件 @
93c81596
# 两两交换链表中的节点
<p>给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。</p><p><strong>你不能只是单纯的改变节点内部的值</strong>,而是需要实际的进行节点交换。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0024.Swap%20Nodes%20in%20Pairs/images/swap_ex1.jpg" style="width: 422px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4]<strong><br />输出:</strong>[2,1,4,3]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>head = []<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>head = [1]<strong><br />输出:</strong>[1]</pre><p> </p><p><strong>提示:</strong></p><ul> <li>链表中节点的数目在范围 <code>[0, 100]</code> 内</li> <li><code>0 <= Node.val <= 100</code></li></ul><p> </p
><p><strong>进阶:</strong>你能在不修改链表节点值的情况下解决这个问题吗?(也就是说,仅修改节点本身。)</p>
<p>给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。</p><p><strong>你不能只是单纯的改变节点内部的值</strong>,而是需要实际的进行节点交换。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0024.Swap%20Nodes%20in%20Pairs/images/swap_ex1.jpg" style="width: 422px; height: 222px;" /><pre><strong>输入:</strong>head = [1,2,3,4]<strong><br />输出:</strong>[2,1,4,3]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>head = []<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>head = [1]<strong><br />输出:</strong>[1]</pre><p><strong>提示:</strong></p><ul> <li>链表中节点的数目在范围 <code>[0, 100]</code> 内</li> <li><code>0 <= Node.val <= 100</code></li></ul
><p><strong>进阶:</strong>你能在不修改链表节点值的情况下解决这个问题吗?(也就是说,仅修改节点本身。)</p>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/3.leetcode-字符串/1.58-最后一个单词的长度/solution.md
浏览文件 @
93c81596
# 最后一个单词的长度
<p>
给你一个字符串
<code>
s
</code>
,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
</p><p><strong>
单词
</strong>
是指仅由字母组成、不包含任何空格字符的最大子字符串。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "Hello World"
<strong><br
/>
输出:
</strong>
5
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = " "
<strong><br
/>
输出:
</strong>
0
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
<=
10<
sup
>
4
</sup></code></li>
<li><code>
s
</code>
仅有英文字母和空格
<code>
' '
</code>
组成
</li></ul>
<p>
给你一个字符串
<code>
s
</code>
,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
</p><p><strong>
单词
</strong>
是指仅由字母组成、不包含任何空格字符的最大子字符串。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "Hello World"
<strong><br
/>
输出:
</strong>
5
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = " "
<strong><br
/>
输出:
</strong>
0
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
<=
10<
sup
>
4
</sup></code></li>
<li><code>
s
</code>
仅有英文字母和空格
<code>
' '
</code>
组成
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/3.leetcode-字符串/10.28-实现 strStr()/solution.md
浏览文件 @
93c81596
...
...
@@ -3,21 +3,21 @@
<p>
实现
<a
href=
"https://baike.baidu.com/item/strstr/811469"
target=
"_blank"
>
strStr()
</a>
函数。
</p>
<p>
给你两个字符串
<code>
haystack
</code>
和
<code>
needle
</code>
,请你在
<code>
haystack
</code>
字符串中找出
<code>
needle
</code>
字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回
<code>
-1
</code><strong>
</strong>
。
</p>
<p>
</p>
<p><strong>
说明:
</strong></p>
<p>
当
<code>
needle
</code>
是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。
</p>
<p>
对于本题而言,当
<code>
needle
</code>
是空字符串时我们应当返回 0 。这与 C 语言的 <a href="https://baike.baidu.com/item/strstr/811469"
target="_blank">strstr()
</a>
以及 Java 的 <a
href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(java.lang.String)"
target="_blank">indexOf()
</a>
定义相符。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<pre><strong>
输入:
</strong>
haystack = "hello", needle = "ll"
<strong><br
/>
输出:
</strong>
2
</pre>
<p><strong>
示例 2:
</strong></p>
<pre><strong>
输入:
</strong>
haystack = "aaaaa", needle = "bba"
<strong><br
/>
输出:
</strong>
-1
</pre>
<p><strong>
示例 3:
</strong></p>
<pre><strong>
输入:
</strong>
haystack = "", needle = ""
<strong><br
/>
输出:
</strong>
0
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
0
<
=
haystack.length
,
needle.length
<=
5
*
10<
sup
>
4
</sup></code></li>
...
...
data/2.算法中阶/3.leetcode-字符串/11.97-交错字符串/solution.md
浏览文件 @
93c81596
# 交错字符串
<p>给定三个字符串 <code>s1</code>、<code>s2</code>、<code>s3</code>,请你帮忙验证 <code>s3</code> 是否是由 <code>s1</code> 和 <code>s2</code><em> </em><strong>交错 </strong>组成的。</p><p>两个字符串 <code>s</code> 和 <code>t</code> <strong>交错</strong> 的定义与过程如下,其中每个字符串都会被分割成若干 <strong>非空</strong> 子字符串:</p><ul> <li><code>s = s<sub>1</sub> + s<sub>2</sub> + ... + s<sub>n</sub></code></li> <li><code>t = t<sub>1</sub> + t<sub>2</sub> + ... + t<sub>m</sub></code></li> <li><code>|n - m| <= 1</code></li> <li><strong>交错</strong> 是 <code>s<sub>1</sub> + t<sub>1</sub> + s<sub>2</sub> + t<sub>2</sub> + s<sub>3</sub> + t<sub>3</sub> + ...</code> 或者 <code>t<sub>1</sub> + s<sub>1</sub> + t<sub>2</sub> + s<sub>2</sub> + t<sub>3</sub> + s<sub>3</sub> + ...</code></li></ul><p><strong>提示:</strong><code>a + b</code> 意味着字符串 <code>a</code> 和 <code>b</code> 连接。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0097.Interleaving%20String/images/interleave.jpg" style="width: 561px; height: 203px;" /><pre><strong>输入:</strong>s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac"<strong><br />输出:</strong>true</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>s1 = "aabcc", s2 = "dbbca", s3 = "aadbbbaccc"<strong><br />输出:</strong>false</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>s1 = "", s2 = "", s3 = ""<strong><br />输出:</strong>true</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>0 <= s1.length, s2.length <= 100</code></li> <li><code>0 <= s3.length <= 200</code></li> <li><code>s1</code>、<code>s2</code>、和 <code>s3</code> 都由小写英文字母组成</li></ul>
<p>给定三个字符串 <code>s1</code>、<code>s2</code>、<code>s3</code>,请你帮忙验证 <code>s3</code> 是否是由 <code>s1</code> 和 <code>s2</code><em> </em><strong>交错 </strong>组成的。</p><p>两个字符串 <code>s</code> 和 <code>t</code> <strong>交错</strong> 的定义与过程如下,其中每个字符串都会被分割成若干 <strong>非空</strong> 子字符串:</p><ul> <li><code>s = s<sub>1</sub> + s<sub>2</sub> + ... + s<sub>n</sub></code></li> <li><code>t = t<sub>1</sub> + t<sub>2</sub> + ... + t<sub>m</sub></code></li> <li><code>|n - m| <= 1</code></li> <li><strong>交错</strong> 是 <code>s<sub>1</sub> + t<sub>1</sub> + s<sub>2</sub> + t<sub>2</sub> + s<sub>3</sub> + t<sub>3</sub> + ...</code> 或者 <code>t<sub>1</sub> + s<sub>1</sub> + t<sub>2</sub> + s<sub>2</sub> + t<sub>3</sub> + s<sub>3</sub> + ...</code></li></ul><p><strong>提示:</strong><code>a + b</code> 意味着字符串 <code>a</code> 和 <code>b</code> 连接。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0097.Interleaving%20String/images/interleave.jpg" style="width: 561px; height: 203px;" /><pre><strong>输入:</strong>s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac"<strong><br />输出:</strong>true</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>s1 = "aabcc", s2 = "dbbca", s3 = "aadbbbaccc"<strong><br />输出:</strong>false</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>s1 = "", s2 = "", s3 = ""<strong><br />输出:</strong>true</pre
><p><strong>提示:</strong></p><ul> <li><code>0 <= s1.length, s2.length <= 100</code></li> <li><code>0 <= s3.length <= 200</code></li> <li><code>s1</code>、<code>s2</code>、和 <code>s3</code> 都由小写英文字母组成</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/3.leetcode-字符串/2.93-复原 IP 地址/solution.md
浏览文件 @
93c81596
# 复原 IP 地址
<p>给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 <code>s</code> 获得的 <strong>有效 IP 地址 </strong>。你可以按任何顺序返回答案。</p><p><strong>有效 IP 地址</strong> 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 <code>0</code>),整数之间用 <code>'.'</code> 分隔。</p><p>例如:"0.1.2.201" 和 "192.168.1.1" 是 <strong>有效</strong> IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 <strong>无效</strong> IP 地址。</p><p>
</p><p><strong>示例 1:</strong></p><pre><strong>输入:</strong>s = "25525511135"<strong><br />输出:</strong>["255.255.11.135","255.255.111.35"]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>s = "0000"<strong><br />输出:</strong>["0.0.0.0"]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>s = "1111"<strong><br />输出:</strong>["1.1.1.1"]</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>s = "010010"<strong><br />输出:</strong>["0.10.0.10","0.100.1.0"]</pre><p><strong>示例 5:</strong></p><pre><strong>输入:</strong>s = "101023"<strong><br />输出:</strong>["1.0.10.23","1.0.102.3","10.1.0.23","10.10.2.3","101.0.2.3"]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>0 <= s.length <= 3000</code></li> <li><code>s</code> 仅由数字组成</li></ul>
<p>给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 <code>s</code> 获得的 <strong>有效 IP 地址 </strong>。你可以按任何顺序返回答案。</p><p><strong>有效 IP 地址</strong> 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 <code>0</code>),整数之间用 <code>'.'</code> 分隔。</p><p>例如:"0.1.2.201" 和 "192.168.1.1" 是 <strong>有效</strong> IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 <strong>无效</strong> IP 地址。</p><p>
<strong>示例 1:</strong></p><pre><strong>输入:</strong>s = "25525511135"<strong><br />输出:</strong>["255.255.11.135","255.255.111.35"]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>s = "0000"<strong><br />输出:</strong>["0.0.0.0"]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>s = "1111"<strong><br />输出:</strong>["1.1.1.1"]</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>s = "010010"<strong><br />输出:</strong>["0.10.0.10","0.100.1.0"]</pre><p><strong>示例 5:</strong></p><pre><strong>输入:</strong>s = "101023"<strong><br />输出:</strong>["1.0.10.23","1.0.102.3","10.1.0.23","10.10.2.3","101.0.2.3"]</pre
><p><strong>提示:</strong></p><ul> <li><code>0 <= s.length <= 3000</code></li> <li><code>s</code> 仅由数字组成</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/3.leetcode-字符串/5.3-无重复字符的最长子串/solution.md
浏览文件 @
93c81596
# 无重复字符的最长子串
<p>
给定一个字符串,请你找出其中不含有重复字符的
<strong>
最长子串
</strong>
的长度。
</p><p>
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "abcabcbb"
<strong><br
/>
输出:
</strong>
3
<strong><br
/>
解释:
</strong>
因为无重复字符的最长子串是 "abc",所以其长度为 3。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "bbbbb"
<strong><br
/>
输出:
</strong>
1
<strong><br
/>
解释:
</strong>
因为无重复字符的最长子串是 "b",所以其长度为 1。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "pwwkew"
<strong><br
/>
输出:
</strong>
3
<strong><br
/>
解释:
</strong>
因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是
<strong>
子串
</strong>
的长度,"pwke" 是一个
<em>
子序列,
</em>
不是子串。
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
s = ""
<strong><br
/>
输出:
</strong>
0
</pre><p>
</p><p>
<strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
s.length
<=
5
*
10<
sup
>
4
</sup></code></li>
<li><code>
s
</code>
由英文字母、数字、符号和空格组成
</li></ul>
<p>
给定一个字符串,请你找出其中不含有重复字符的
<strong>
最长子串
</strong>
的长度。
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "abcabcbb"
<strong><br
/>
输出:
</strong>
3
<strong><br
/>
解释:
</strong>
因为无重复字符的最长子串是 "abc",所以其长度为 3。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "bbbbb"
<strong><br
/>
输出:
</strong>
1
<strong><br
/>
解释:
</strong>
因为无重复字符的最长子串是 "b",所以其长度为 1。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "pwwkew"
<strong><br
/>
输出:
</strong>
3
<strong><br
/>
解释:
</strong>
因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是
<strong>
子串
</strong>
的长度,"pwke" 是一个
<em>
子序列,
</em>
不是子串。
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
s = ""
<strong><br
/>
输出:
</strong>
0
</pre><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
s.length
<=
5
*
10<
sup
>
4
</sup></code></li>
<li><code>
s
</code>
由英文字母、数字、符号和空格组成
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/3.leetcode-字符串/7.14-最长公共前缀/solution.md
浏览文件 @
93c81596
# 最长公共前缀
<p>
编写一个函数来查找字符串数组中的最长公共前缀。
</p><p>
如果不存在公共前缀,返回空字符串
<code>
""
</code>
。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
strs = ["flower","flow","flight"]
<strong><br
/>
输出:
</strong>
"fl"
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
strs = ["dog","racecar","car"]
<strong><br
/>
输出:
</strong>
""
<strong><br
/>
解释:
</strong>
输入不存在公共前缀。
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
strs.length
<=
200</
code
></li>
<li><code>
0
<
=
strs
[
i
].
length
<=
200</
code
></li>
<li><code>
strs[i]
</code>
仅由小写英文字母组成
</li></ul>
<p>
编写一个函数来查找字符串数组中的最长公共前缀。
</p><p>
如果不存在公共前缀,返回空字符串
<code>
""
</code>
。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
strs = ["flower","flow","flight"]
<strong><br
/>
输出:
</strong>
"fl"
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
strs = ["dog","racecar","car"]
<strong><br
/>
输出:
</strong>
""
<strong><br
/>
解释:
</strong>
输入不存在公共前缀。
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
strs.length
<=
200</
code
></li>
<li><code>
0
<
=
strs
[
i
].
length
<=
200</
code
></li>
<li><code>
strs[i]
</code>
仅由小写英文字母组成
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/3.leetcode-字符串/9.65-有效数字/solution.md
浏览文件 @
93c81596
# 有效数字
<p><strong>
有效数字
</strong>
(按顺序)可以分成以下几个部分:
</p><ol>
<li>
一个
<strong>
小数
</strong>
或者
<strong>
整数
</strong></li>
<li>
(可选)一个
<code>
'e'
</code>
或
<code>
'E'
</code>
,后面跟着一个
<strong>
整数
</strong></li></ol><p><strong>
小数
</strong>
(按顺序)可以分成以下几个部分:
</p><ol>
<li>
(可选)一个符号字符(
<code>
'+'
</code>
或
<code>
'-'
</code>
)
</li>
<li>
下述格式之一:
<ol>
<li>
至少一位数字,后面跟着一个点
<code>
'.'
</code></li>
<li>
至少一位数字,后面跟着一个点
<code>
'.'
</code>
,后面再跟着至少一位数字
</li>
<li>
一个点
<code>
'.'
</code>
,后面跟着至少一位数字
</li>
</ol>
</li></ol><p><strong>
整数
</strong>
(按顺序)可以分成以下几个部分:
</p><ol>
<li>
(可选)一个符号字符(
<code>
'+'
</code>
或
<code>
'-'
</code>
)
</li>
<li>
至少一位数字
</li></ol><p>
部分有效数字列举如下:
</p><ul>
<li><code>
["2", "0089", "-0.1", "+3.14", "4.", "-.9", "2e10", "-90E3", "3e+7", "+6e-1", "53.5e93", "-123.456e789"]
</code></li></ul><p>
部分无效数字列举如下:
</p><ul>
<li><code>
["abc", "1a", "1e", "e3", "99e2.5", "--6", "-+3", "95a54e53"]
</code></li></ul><p>
给你一个字符串
<code>
s
</code>
,如果
<code>
s
</code>
是一个
<strong>
有效数字
</strong>
,请返回
<code>
true
</code>
。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "0"
<strong><br
/>
输出:
</strong>
true
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "e"
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "."
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
s = ".1"
<strong><br
/>
输出:
</strong>
true
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
<=
20</
code
></li>
<li><code>
s
</code>
仅含英文字母(大写和小写),数字(
<code>
0-9
</code>
),加号
<code>
'+'
</code>
,减号
<code>
'-'
</code>
,或者点
<code>
'.'
</code>
。
</li></ul>
<p><strong>
有效数字
</strong>
(按顺序)可以分成以下几个部分:
</p><ol>
<li>
一个
<strong>
小数
</strong>
或者
<strong>
整数
</strong></li>
<li>
(可选)一个
<code>
'e'
</code>
或
<code>
'E'
</code>
,后面跟着一个
<strong>
整数
</strong></li></ol><p><strong>
小数
</strong>
(按顺序)可以分成以下几个部分:
</p><ol>
<li>
(可选)一个符号字符(
<code>
'+'
</code>
或
<code>
'-'
</code>
)
</li>
<li>
下述格式之一:
<ol>
<li>
至少一位数字,后面跟着一个点
<code>
'.'
</code></li>
<li>
至少一位数字,后面跟着一个点
<code>
'.'
</code>
,后面再跟着至少一位数字
</li>
<li>
一个点
<code>
'.'
</code>
,后面跟着至少一位数字
</li>
</ol>
</li></ol><p><strong>
整数
</strong>
(按顺序)可以分成以下几个部分:
</p><ol>
<li>
(可选)一个符号字符(
<code>
'+'
</code>
或
<code>
'-'
</code>
)
</li>
<li>
至少一位数字
</li></ol><p>
部分有效数字列举如下:
</p><ul>
<li><code>
["2", "0089", "-0.1", "+3.14", "4.", "-.9", "2e10", "-90E3", "3e+7", "+6e-1", "53.5e93", "-123.456e789"]
</code></li></ul><p>
部分无效数字列举如下:
</p><ul>
<li><code>
["abc", "1a", "1e", "e3", "99e2.5", "--6", "-+3", "95a54e53"]
</code></li></ul><p>
给你一个字符串
<code>
s
</code>
,如果
<code>
s
</code>
是一个
<strong>
有效数字
</strong>
,请返回
<code>
true
</code>
。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "0"
<strong><br
/>
输出:
</strong>
true
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "e"
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "."
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
s = ".1"
<strong><br
/>
输出:
</strong>
true
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
<=
20</
code
></li>
<li><code>
s
</code>
仅含英文字母(大写和小写),数字(
<code>
0-9
</code>
),加号
<code>
'+'
</code>
,减号
<code>
'-'
</code>
,或者点
<code>
'.'
</code>
。
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/4.leetcode-栈与队列/1.227-基本计算器 II/solution.md
浏览文件 @
93c81596
...
...
@@ -6,7 +6,7 @@
<div
class=
"original__bRMd"
>
<div>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -32,7 +32,7 @@
<strong>
输出:
</strong>
5
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/2.算法中阶/4.leetcode-栈与队列/10.42-接雨水/solution.md
浏览文件 @
93c81596
# 接雨水
<p>给定 <em>n</em> 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。</p><p>
</p><p><strong>示例 1:</strong></p><p><img src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0042.Trapping%20Rain%20Water/images/rainwatertrap.png" style="height: 161px; width: 412px;" /></p><pre><strong>输入:</strong>height = [0,1,0,2,1,0,1,3,2,1,2,1]<strong><br />输出:</strong>6<strong><br />解释:</strong>上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 </pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>height = [4,2,0,3,2,5]<strong><br />输出:</strong>9</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>n == height.length</code></li> <li><code>0 <= n <= 3 * 10<sup>4</sup></code></li> <li><code>0 <= height[i] <= 10<sup>5</sup></code></li></ul>
<p>给定 <em>n</em> 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。</p><p>
<strong>示例 1:</strong></p><p><img src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0042.Trapping%20Rain%20Water/images/rainwatertrap.png" style="height: 161px; width: 412px;" /></p><pre><strong>输入:</strong>height = [0,1,0,2,1,0,1,3,2,1,2,1]<strong><br />输出:</strong>6<strong><br />解释:</strong>上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 </pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>height = [4,2,0,3,2,5]<strong><br />输出:</strong>9</pre
><p><strong>提示:</strong></p><ul> <li><code>n == height.length</code></li> <li><code>0 <= n <= 3 * 10<sup>4</sup></code></li> <li><code>0 <= height[i] <= 10<sup>5</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/4.leetcode-栈与队列/2.71-简化路径/solution.md
浏览文件 @
93c81596
# 简化路径
<p>
给你一个字符串
<code>
path
</code>
,表示指向某一文件或目录的 Unix 风格
<strong>
绝对路径
</strong>
(以
<code>
'/'
</code>
开头),请你将其转化为更加简洁的规范路径。
</p><p
class=
"MachineTrans-lang-zh-CN"
>
在 Unix 风格的文件系统中,一个点(
<code>
.
</code>
)表示当前目录本身;此外,两个点 (
<code>
..
</code>
) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,
<code>
'//'
</code>
)都被视为单个斜杠
<code>
'/'
</code>
。 对于此问题,任何其他格式的点(例如,
<code>
'...'
</code>
)均被视为文件/目录名称。
</p><p>
请注意,返回的
<strong>
规范路径
</strong>
必须遵循下述格式:
</p><ul>
<li>
始终以斜杠
<code>
'/'
</code>
开头。
</li>
<li>
两个目录名之间必须只有一个斜杠
<code>
'/'
</code>
。
</li>
<li>
最后一个目录名(如果存在)
<strong>
不能
</strong>
以
<code>
'/'
</code>
结尾。
</li>
<li>
此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含
<code>
'.'
</code>
或
<code>
'..'
</code>
)。
</li></ul><p>
返回简化后得到的
<strong>
规范路径
</strong>
。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
path = "/home/"
<strong><br
/>
输出:
</strong>
"/home"
<strong><br
/>
解释:
</strong>
注意,最后一个目录名后面没有斜杠。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
path = "/../"
<strong><br
/>
输出:
</strong>
"/"
<strong><br
/>
解释:
</strong>
从根目录向上一级是不可行的,因为根目录是你可以到达的最高级。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
path = "/home//foo/"
<strong><br
/>
输出:
</strong>
"/home/foo"
<strong><br
/>
解释:
</strong>
在规范路径中,多个连续斜杠需要用一个斜杠替换。
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
path = "/a/./b/../../c/"
<strong><br
/>
输出:
</strong>
"/c"
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
path.length
<=
3000</
code
></li>
<li><code>
path
</code>
由英文字母,数字,
<code>
'.'
</code>
,
<code>
'/'
</code>
或
<code>
'_'
</code>
组成。
</li>
<li><code>
path
</code>
是一个有效的 Unix 风格绝对路径。
</li></ul>
<p>
给你一个字符串
<code>
path
</code>
,表示指向某一文件或目录的 Unix 风格
<strong>
绝对路径
</strong>
(以
<code>
'/'
</code>
开头),请你将其转化为更加简洁的规范路径。
</p><p
class=
"MachineTrans-lang-zh-CN"
>
在 Unix 风格的文件系统中,一个点(
<code>
.
</code>
)表示当前目录本身;此外,两个点 (
<code>
..
</code>
) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,
<code>
'//'
</code>
)都被视为单个斜杠
<code>
'/'
</code>
。 对于此问题,任何其他格式的点(例如,
<code>
'...'
</code>
)均被视为文件/目录名称。
</p><p>
请注意,返回的
<strong>
规范路径
</strong>
必须遵循下述格式:
</p><ul>
<li>
始终以斜杠
<code>
'/'
</code>
开头。
</li>
<li>
两个目录名之间必须只有一个斜杠
<code>
'/'
</code>
。
</li>
<li>
最后一个目录名(如果存在)
<strong>
不能
</strong>
以
<code>
'/'
</code>
结尾。
</li>
<li>
此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含
<code>
'.'
</code>
或
<code>
'..'
</code>
)。
</li></ul><p>
返回简化后得到的
<strong>
规范路径
</strong>
。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
path = "/home/"
<strong><br
/>
输出:
</strong>
"/home"
<strong><br
/>
解释:
</strong>
注意,最后一个目录名后面没有斜杠。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
path = "/../"
<strong><br
/>
输出:
</strong>
"/"
<strong><br
/>
解释:
</strong>
从根目录向上一级是不可行的,因为根目录是你可以到达的最高级。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
path = "/home//foo/"
<strong><br
/>
输出:
</strong>
"/home/foo"
<strong><br
/>
解释:
</strong>
在规范路径中,多个连续斜杠需要用一个斜杠替换。
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
path = "/a/./b/../../c/"
<strong><br
/>
输出:
</strong>
"/c"
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
path.length
<=
3000</
code
></li>
<li><code>
path
</code>
由英文字母,数字,
<code>
'.'
</code>
,
<code>
'/'
</code>
或
<code>
'_'
</code>
组成。
</li>
<li><code>
path
</code>
是一个有效的 Unix 风格绝对路径。
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/4.leetcode-栈与队列/3.20-有效的括号/solution.md
浏览文件 @
93c81596
# 有效的括号
<p>
给定一个只包括
<code>
'('
</code>
,
<code>
')'
</code>
,
<code>
'{'
</code>
,
<code>
'}'
</code>
,
<code>
'['
</code>
,
<code>
']'
</code>
的字符串
<code>
s
</code>
,判断字符串是否有效。
</p><p>
有效字符串需满足:
</p><ol>
<li>
左括号必须用相同类型的右括号闭合。
</li>
<li>
左括号必须以正确的顺序闭合。
</li></ol><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "()"
<strong><br
/>
输出:
</strong>
true
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "()[]{}"
<strong><br
/>
输出:
</strong>
true
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "(]"
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
s = "([)]"
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
示例 5:
</strong></p><pre><strong>
输入:
</strong>
s = "{[]}"
<strong><br
/>
输出:
</strong>
true
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
<=
10<
sup
>
4
</sup></code></li>
<li><code>
s
</code>
仅由括号
<code>
'()[]{}'
</code>
组成
</li></ul>
<p>
给定一个只包括
<code>
'('
</code>
,
<code>
')'
</code>
,
<code>
'{'
</code>
,
<code>
'}'
</code>
,
<code>
'['
</code>
,
<code>
']'
</code>
的字符串
<code>
s
</code>
,判断字符串是否有效。
</p><p>
有效字符串需满足:
</p><ol>
<li>
左括号必须用相同类型的右括号闭合。
</li>
<li>
左括号必须以正确的顺序闭合。
</li></ol><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "()"
<strong><br
/>
输出:
</strong>
true
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "()[]{}"
<strong><br
/>
输出:
</strong>
true
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "(]"
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
s = "([)]"
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
示例 5:
</strong></p><pre><strong>
输入:
</strong>
s = "{[]}"
<strong><br
/>
输出:
</strong>
true
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
<=
10<
sup
>
4
</sup></code></li>
<li><code>
s
</code>
仅由括号
<code>
'()[]{}'
</code>
组成
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/4.leetcode-栈与队列/4.224-基本计算器/solution.md
浏览文件 @
93c81596
...
...
@@ -2,7 +2,7 @@
<p>
给你一个字符串表达式
<code>
s
</code>
,请你实现一个基本计算器来计算并返回它的值。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -28,7 +28,7 @@
<strong>
输出:
</strong>
23
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/2.算法中阶/4.leetcode-栈与队列/5.32-最长有效括号/solution.md
浏览文件 @
93c81596
# 最长有效括号
<p>
给你一个只包含
<code>
'('
</code>
和
<code>
')'
</code>
的字符串,找出最长有效(格式正确且连续)括号子串的长度。
</p><
p>
</p><div
class=
"original__bRMd"
><div><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "(()"
<strong><br
/>
输出:
</strong>
2
<strong><br
/>
解释:
</strong>
最长有效括号子串是 "()"
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = ")()())"
<strong><br
/>
输出:
</strong>
4
<strong><br
/>
解释:
</strong>
最长有效括号子串是 "()()"
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = ""
<strong><br
/>
输出:
</strong>
0
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
s.length
<=
3
*
10<
sup
>
4
</sup></code></li>
<li><code>
s[i]
</code>
为
<code>
'('
</code>
或
<code>
')'
</code></li></ul></div></div>
<p>
给你一个只包含
<code>
'('
</code>
和
<code>
')'
</code>
的字符串,找出最长有效(格式正确且连续)括号子串的长度。
</p><
div
class=
"original__bRMd"
><div><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "(()"
<strong><br
/>
输出:
</strong>
2
<strong><br
/>
解释:
</strong>
最长有效括号子串是 "()"
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = ")()())"
<strong><br
/>
输出:
</strong>
4
<strong><br
/>
解释:
</strong>
最长有效括号子串是 "()()"
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = ""
<strong><br
/>
输出:
</strong>
0
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
s.length
<=
3
*
10<
sup
>
4
</sup></code></li>
<li><code>
s[i]
</code>
为
<code>
'('
</code>
或
<code>
')'
</code></li></ul></div></div>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
...
...
data/2.算法中阶/4.leetcode-栈与队列/7.218-天际线问题/solution.md
浏览文件 @
93c81596
...
...
@@ -14,7 +14,7 @@
<p><strong>
注意:
</strong>
输出天际线中不得有连续的相同高度的水平线。例如
<code>
[...[2 3], [4 5], [7 5], [11 5], [12 7]...]
</code>
是不正确的答案;三条高度为 5 的线应该在最终输出中合并为一个:
<code>
[...[2 3], [4 5], [12 7], ...]
</code></p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://assets.leetcode.com/uploads/2020/12/01/merged.jpg"
style=
"width: 800px; height: 331px;"
/>
...
...
@@ -37,7 +37,7 @@
<strong>
输出:
</strong>
[[0,3],[5,0]]
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/2.算法中阶/4.leetcode-栈与队列/9.150-逆波兰表达式求值/solution.md
浏览文件 @
93c81596
...
...
@@ -4,7 +4,7 @@
<p>
有效的算符包括
<code>
+
</code>
、
<code>
-
</code>
、
<code>
*
</code>
、
<code>
/
</code>
。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
</p>
<p>
</p>
<p><strong>
说明:
</strong></p>
...
...
@@ -13,7 +13,7 @@
<li>
给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
</li>
</ul>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -56,7 +56,7 @@
= 17 + 5
= 22
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
@@ -65,7 +65,7 @@
<li><code>
tokens[i]
</code>
要么是一个算符(
<code>
"+"
</code>
、
<code>
"-"
</code>
、
<code>
"
*
"
</code>
或
<code>
"/"
</code>
),要么是一个在范围
<code>
[-200, 200]
</code>
内的整数
</li>
</ul>
<p>
</p>
<p><strong>
逆波兰表达式:
</strong></p>
...
...
data/2.算法中阶/5.leetcode-排序算法/10.378-有序矩阵中第 K 小的元素/solution.md
浏览文件 @
93c81596
...
...
@@ -3,7 +3,7 @@
<p>
给你一个
<code>
n x n
</code><em>
</em>
矩阵
<code>
matrix
</code>
,其中每行和每列元素均按升序排序,找到矩阵中第
<code>
k
</code>
小的元素。
<br
/>
请注意,它是
<strong>
排序后
</strong>
的第
<code>
k
</code>
小元素,而不是第
<code>
k
</code>
个
<strong>
不同
</strong>
的元素。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -23,7 +23,7 @@
<strong>
输出:
</strong>
-5
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/2.算法中阶/5.leetcode-排序算法/2.324-摆动排序 II/solution.md
浏览文件 @
93c81596
...
...
@@ -4,7 +4,7 @@
<p>
你可以假设所有输入数组都可以得到满足题目要求的结果。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -24,7 +24,7 @@
<strong>
输出:
</strong>
[2,3,1,3,1,2]
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
@@ -34,7 +34,7 @@
<li>
题目数据保证,对于给定的输入
<code>
nums
</code>
,总能产生满足题目要求的结果
</li>
</ul>
<p>
</p>
<p><strong>
进阶:
</strong>
你能用 O(n) 时间复杂度和 / 或原地 O(1) 额外空间来实现吗?
</p>
...
...
data/2.算法中阶/5.leetcode-排序算法/3.274-H 指数/solution.md
浏览文件 @
93c81596
...
...
@@ -8,7 +8,7 @@
<p><strong>
提示:
</strong>
如果
<code>
h
</code><em>
</em>
有多种可能的值,
<strong><code>
h
</code>
指数
</strong>
是其中最大的那个。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -29,7 +29,7 @@
<strong>
输出:
</strong>
1
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/2.算法中阶/5.leetcode-排序算法/4.347-前 K 个高频元素/solution.md
浏览文件 @
93c81596
...
...
@@ -2,7 +2,7 @@
<p>
给你一个整数数组
<code>
nums
</code>
和一个整数
<code>
k
</code>
,请你返回其中出现频率前
<code>
k
</code>
高的元素。你可以按
<strong>
任意顺序
</strong>
返回答案。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -19,7 +19,7 @@
<strong>
输出:
</strong>
[1]
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
@@ -29,7 +29,7 @@
<li>
题目数据保证答案唯一,换句话说,数组中前
<code>
k
</code>
个高频元素的集合是唯一的
</li>
</ul>
<p>
</p>
<p><strong>
进阶:
</strong>
你所设计算法的时间复杂度
<strong>
必须
</strong>
优于
<code>
O(n log n)
</code>
,其中
<code>
n
</code><em>
</em>
是数组大小。
</p>
...
...
data/2.算法中阶/5.leetcode-排序算法/5.354-俄罗斯套娃信封问题/solution.md
浏览文件 @
93c81596
...
...
@@ -26,7 +26,7 @@
<strong>
输出:
</strong>
1
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/2.算法中阶/5.leetcode-排序算法/7.327-区间和的个数/solution.md
浏览文件 @
93c81596
...
...
@@ -4,7 +4,7 @@
<p><strong>
区间和
</strong>
<code>
S(i, j)
</code>
表示在
<code>
nums
</code>
中,位置从
<code>
i
</code>
到
<code>
j
</code>
的元素之和,包含
<code>
i
</code>
和
<code>
j
</code>
(
<code>
i
</code>
≤
<code>
j
</code>
)。
</p>
<p>
</p>
<strong>
示例 1:
</strong>
<pre>
...
...
@@ -23,7 +23,7 @@
<strong>
输出:
</strong>
1
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/2.算法中阶/6.leetcode-双指针/1.75-颜色分类/solution.md
浏览文件 @
93c81596
# 颜色分类
<p>
给定一个包含红色、白色和蓝色,一共
<code>
n
</code><em>
</em>
个元素的数组,
<strong><a
href=
"https://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95"
target=
"_blank"
>
原地
</a></strong>
对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
</p><p>
此题中,我们使用整数
<code>
0
</code>
、
<code>
1
</code>
和
<code>
2
</code>
分别表示红色、白色和蓝色。
</p><ul></ul><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [2,0,2,1,1,0]
<strong><br
/>
输出:
</strong>
[0,0,1,1,2,2]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [2,0,1]
<strong><br
/>
输出:
</strong>
[0,1,2]
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
[0]
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
nums = [1]
<strong><br
/>
输出:
</strong>
[1]
</pre><p>
</p><p><strong>
提示:
</strong></p><ul>
<li><code>
n == nums.length
</code></li>
<li><code>
1
<
=
n
<=
300</
code
></li>
<li><code>
nums[i]
</code>
为
<code>
0
</code>
、
<code>
1
</code>
或
<code>
2
</code></li></ul><p>
</p
><p><strong>
进阶:
</strong></p><ul>
<li>
你可以不使用代码库中的排序函数来解决这道题吗?
</li>
<li>
你能想出一个仅使用常数空间的一趟扫描算法吗?
</li></ul>
<p>
给定一个包含红色、白色和蓝色,一共
<code>
n
</code><em>
</em>
个元素的数组,
<strong><a
href=
"https://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95"
target=
"_blank"
>
原地
</a></strong>
对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
</p><p>
此题中,我们使用整数
<code>
0
</code>
、
<code>
1
</code>
和
<code>
2
</code>
分别表示红色、白色和蓝色。
</p><ul></ul><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [2,0,2,1,1,0]
<strong><br
/>
输出:
</strong>
[0,0,1,1,2,2]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [2,0,1]
<strong><br
/>
输出:
</strong>
[0,1,2]
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
[0]
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
nums = [1]
<strong><br
/>
输出:
</strong>
[1]
</pre><p><strong>
提示:
</strong></p><ul>
<li><code>
n == nums.length
</code></li>
<li><code>
1
<
=
n
<=
300</
code
></li>
<li><code>
nums[i]
</code>
为
<code>
0
</code>
、
<code>
1
</code>
或
<code>
2
</code></li></ul
><p><strong>
进阶:
</strong></p><ul>
<li>
你可以不使用代码库中的排序函数来解决这道题吗?
</li>
<li>
你能想出一个仅使用常数空间的一趟扫描算法吗?
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/6.leetcode-双指针/2.11-盛最多水的容器/solution.md
浏览文件 @
93c81596
# 盛最多水的容器
<p>给你 <code>n</code> 个非负整数 <code>a<sub>1</sub>,a<sub>2,</sub>...,a</code><sub><code>n</code>,</sub>每个数代表坐标中的一个点 <code>(i, a<sub>i</sub>)</code> 。在坐标内画 <code>n</code> 条垂直线,垂直线 <code>i</code> 的两个端点分别为 <code>(i, a<sub>i</sub>)</code> 和 <code>(i, 0)</code> 。找出其中的两条线,使得它们与 <code>x</code> 轴共同构成的容器可以容纳最多的水。</p><p><strong>说明:</strong>你不能倾斜容器。</p><p>
</p><p><strong>示例 1:</strong></p><p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0011.Container%20With%20Most%20Water/images/question_11.jpg" style="height: 287px; width: 600px;" /></p><pre><strong>输入:</strong>[1,8,6,2,5,4,8,3,7]<strong><br />输出:</strong>49 <strong><br />解释:</strong>图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>height = [1,1]<strong><br />输出:</strong>1</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>height = [4,3,2,1,4]<strong><br />输出:</strong>16</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>height = [1,2,1]<strong><br />输出:</strong>2</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>n = height.length</code></li> <li><code>2 <= n <= 3 * 10<sup>4</sup></code></li> <li><code>0 <= height[i] <= 3 * 10<sup>4</sup></code></li></ul>
<p>给你 <code>n</code> 个非负整数 <code>a<sub>1</sub>,a<sub>2,</sub>...,a</code><sub><code>n</code>,</sub>每个数代表坐标中的一个点 <code>(i, a<sub>i</sub>)</code> 。在坐标内画 <code>n</code> 条垂直线,垂直线 <code>i</code> 的两个端点分别为 <code>(i, a<sub>i</sub>)</code> 和 <code>(i, 0)</code> 。找出其中的两条线,使得它们与 <code>x</code> 轴共同构成的容器可以容纳最多的水。</p><p><strong>说明:</strong>你不能倾斜容器。</p><p>
<strong>示例 1:</strong></p><p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0011.Container%20With%20Most%20Water/images/question_11.jpg" style="height: 287px; width: 600px;" /></p><pre><strong>输入:</strong>[1,8,6,2,5,4,8,3,7]<strong><br />输出:</strong>49 <strong><br />解释:</strong>图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>height = [1,1]<strong><br />输出:</strong>1</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>height = [4,3,2,1,4]<strong><br />输出:</strong>16</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>height = [1,2,1]<strong><br />输出:</strong>2</pre
><p><strong>提示:</strong></p><ul> <li><code>n = height.length</code></li> <li><code>2 <= n <= 3 * 10<sup>4</sup></code></li> <li><code>0 <= height[i] <= 3 * 10<sup>4</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/6.leetcode-双指针/3.31-下一个排列/solution.md
浏览文件 @
93c81596
# 下一个排列
<p>
实现获取
<strong>
下一个排列
</strong>
的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。
</p><p>
如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。
</p><p>
必须
<strong><a
href=
"https://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95"
target=
"_blank"
>
原地
</a></strong>
修改,只允许使用额外常数空间。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,3]
<strong><br
/>
输出:
</strong>
[1,3,2]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,2,1]
<strong><br
/>
输出:
</strong>
[1,2,3]
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,1,5]
<strong><br
/>
输出:
</strong>
[1,5,1]
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
nums = [1]
<strong><br
/>
输出:
</strong>
[1]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
100</
code
></li>
<li><code>
0
<
=
nums
[
i
]
<=
100</
code
></li></ul>
<p>
实现获取
<strong>
下一个排列
</strong>
的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。
</p><p>
如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。
</p><p>
必须
<strong><a
href=
"https://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95"
target=
"_blank"
>
原地
</a></strong>
修改,只允许使用额外常数空间。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,3]
<strong><br
/>
输出:
</strong>
[1,3,2]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,2,1]
<strong><br
/>
输出:
</strong>
[1,2,3]
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,1,5]
<strong><br
/>
输出:
</strong>
[1,5,1]
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
nums = [1]
<strong><br
/>
输出:
</strong>
[1]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
100</
code
></li>
<li><code>
0
<
=
nums
[
i
]
<=
100</
code
></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
...
...
data/2.算法中阶/6.leetcode-双指针/4.142-环形链表 II/solution.md
浏览文件 @
93c81596
...
...
@@ -12,7 +12,7 @@
<li>
你是否可以使用
<code>
O(1)
</code>
空间解决此题?
</li>
</ul>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -50,7 +50,7 @@
<strong>
解释:
</strong>
链表中没有环。
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/2.算法中阶/6.leetcode-双指针/6.61-旋转链表/solution.md
浏览文件 @
93c81596
# 旋转链表
<p>给你一个链表的头节点 <code>head</code> ,旋转链表,将链表每个节点向右移动 <code>k</code><em> </em>个位置。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0061.Rotate%20List/images/rotate1.jpg" style="width: 600px; height: 254px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], k = 2<strong><br />输出:</strong>[4,5,1,2,3]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0061.Rotate%20List/images/roate2.jpg" style="width: 472px; height: 542px;" /><pre><strong>输入:</strong>head = [0,1,2], k = 4<strong><br />输出:</strong>[2,0,1]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li>链表中节点的数目在范围 <code>[0, 500]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li> <li><code>0 <= k <= 2 * 10<sup>9</sup></code></li></ul>
<p>给你一个链表的头节点 <code>head</code> ,旋转链表,将链表每个节点向右移动 <code>k</code><em> </em>个位置。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0061.Rotate%20List/images/rotate1.jpg" style="width: 600px; height: 254px;" /><pre><strong>输入:</strong>head = [1,2,3,4,5], k = 2<strong><br />输出:</strong>[4,5,1,2,3]</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0061.Rotate%20List/images/roate2.jpg" style="width: 472px; height: 542px;" /><pre><strong>输入:</strong>head = [0,1,2], k = 4<strong><br />输出:</strong>[2,0,1]</pre
><p><strong>提示:</strong></p><ul> <li>链表中节点的数目在范围 <code>[0, 500]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li> <li><code>0 <= k <= 2 * 10<sup>9</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/6.leetcode-双指针/9.88-合并两个有序数组/solution.md
浏览文件 @
93c81596
# 合并两个有序数组
<p>
给你两个有序整数数组
<code>
nums1
</code><em>
</em>
和
<code>
nums2
</code>
,请你将
<code>
nums2
</code><em>
</em>
合并到
<code>
nums1
</code><em>
</em>
中
<em>
,
</em>
使
<code>
nums1
</code><em>
</em>
成为一个有序数组。
</p><p>
初始化
<code>
nums1
</code>
和
<code>
nums2
</code>
的元素数量分别为
<code>
m
</code>
和
<code>
n
</code><em>
</em>
。你可以假设
<code>
nums1
</code><em>
</em>
的空间大小等于
<code>
m + n
</code>
,这样它就有足够的空间保存来自
<code>
nums2
</code>
的元素。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
<strong><br
/>
输出:
</strong>
[1,2,2,3,5,6]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [1], m = 1, nums2 = [], n = 0
<strong><br
/>
输出:
</strong>
[1]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
nums1.length == m + n
</code></li>
<li><code>
nums2.length == n
</code></li>
<li><code>
0
<
=
m
,
n
<=
200</
code
></li>
<li><code>
1
<
=
m
+
n
<=
200</
code
></li>
<li><code>
-10
<sup>
9
</sup>
<
=
nums1
[
i
],
nums2
[
i
]
<=
10<
sup
>
9
</sup></code></li></ul>
<p>
给你两个有序整数数组
<code>
nums1
</code><em>
</em>
和
<code>
nums2
</code>
,请你将
<code>
nums2
</code><em>
</em>
合并到
<code>
nums1
</code><em>
</em>
中
<em>
,
</em>
使
<code>
nums1
</code><em>
</em>
成为一个有序数组。
</p><p>
初始化
<code>
nums1
</code>
和
<code>
nums2
</code>
的元素数量分别为
<code>
m
</code>
和
<code>
n
</code><em>
</em>
。你可以假设
<code>
nums1
</code><em>
</em>
的空间大小等于
<code>
m + n
</code>
,这样它就有足够的空间保存来自
<code>
nums2
</code>
的元素。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
<strong><br
/>
输出:
</strong>
[1,2,2,3,5,6]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums1 = [1], m = 1, nums2 = [], n = 0
<strong><br
/>
输出:
</strong>
[1]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
nums1.length == m + n
</code></li>
<li><code>
nums2.length == n
</code></li>
<li><code>
0
<
=
m
,
n
<=
200</
code
></li>
<li><code>
1
<
=
m
+
n
<=
200</
code
></li>
<li><code>
-10
<sup>
9
</sup>
<
=
nums1
[
i
],
nums2
[
i
]
<=
10<
sup
>
9
</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/1.leetcode-树/2.100-相同的树/solution.md
浏览文件 @
93c81596
# 相同的树
<p>给你两棵二叉树的根节点 <code>p</code> 和 <code>q</code> ,编写一个函数来检验这两棵树是否相同。</p><p>如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0100-0199/0100.Same%20Tree/images/ex1.jpg" style="width: 622px; height: 182px;" /><pre><strong>输入:</strong>p = [1,2,3], q = [1,2,3]<strong><br />输出:</strong>true</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0100-0199/0100.Same%20Tree/images/ex2.jpg" style="width: 382px; height: 182px;" /><pre><strong>输入:</strong>p = [1,2], q = [1,null,2]<strong><br />输出:</strong>false</pre><p><strong>示例 3:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0100-0199/0100.Same%20Tree/images/ex3.jpg" style="width: 622px; height: 182px;" /><pre><strong>输入:</strong>p = [1,2,1], q = [1,1,2]<strong><br />输出:</strong>false</pre><p> </p
><p><strong>提示:</strong></p><ul> <li>两棵树上的节点数目都在范围 <code>[0, 100]</code> 内</li> <li><code>-10<sup>4</sup> <= Node.val <= 10<sup>4</sup></code></li></ul>
<p>给你两棵二叉树的根节点 <code>p</code> 和 <code>q</code> ,编写一个函数来检验这两棵树是否相同。</p><p>如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0100-0199/0100.Same%20Tree/images/ex1.jpg" style="width: 622px; height: 182px;" /><pre><strong>输入:</strong>p = [1,2,3], q = [1,2,3]<strong><br />输出:</strong>true</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0100-0199/0100.Same%20Tree/images/ex2.jpg" style="width: 382px; height: 182px;" /><pre><strong>输入:</strong>p = [1,2], q = [1,null,2]<strong><br />输出:</strong>false</pre><p><strong>示例 3:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0100-0199/0100.Same%20Tree/images/ex3.jpg" style="width: 622px; height: 182px;" /><pre><strong>输入:</strong>p = [1,2,1], q = [1,1,2]<strong><br />输出:</strong>false</pre
><p><strong>提示:</strong></p><ul> <li>两棵树上的节点数目都在范围 <code>[0, 100]</code> 内</li> <li><code>-10<sup>4</sup> <= Node.val <= 10<sup>4</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/1.leetcode-树/3.124-二叉树中的最大路径和/solution.md
浏览文件 @
93c81596
...
...
@@ -6,7 +6,7 @@
<p>
给你一个二叉树的根节点
<code>
root
</code>
,返回其
<strong>
最大路径和
</strong>
。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://assets.leetcode.com/uploads/2020/10/13/exx1.jpg"
style=
"width: 322px; height: 182px;"
/>
...
...
@@ -27,7 +27,7 @@
<strong>
解释:
</strong>
最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/1.leetcode-树/6.99-恢复二叉搜索树/solution.md
浏览文件 @
93c81596
# 恢复二叉搜索树
<p>给你二叉搜索树的根节点 <code>root</code> ,该树中的两个节点被<span style="color:red">错误</span>地交换。请在不改变其结构的情况下,恢复这棵树。</p><p><strong>进阶:</strong>使用 O(<em>n</em>) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗?</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0099.Recover%20Binary%20Search%20Tree/images/recover1.jpg" style="width: 422px; height: 302px;" /><pre><strong>输入:</strong>root = [1,3,null,null,2]<strong><br />输出:</strong>[3,1,null,null,2]<strong><br />解释:</strong>3 不能是 1 左孩子,因为 3 > 1 。交换 1 和 3 使二叉搜索树有效。</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0099.Recover%20Binary%20Search%20Tree/images/recover2.jpg" style="width: 581px; height: 302px;" /><pre><strong>输入:</strong>root = [3,1,4,null,null,2]<strong><br />输出:</strong>[2,1,4,null,null,3]<strong><br />解释:</strong>2 不能在 3 的右子树中,因为 2 < 3 。交换 2 和 3 使二叉搜索树有效。</pre><p> </p
><p><strong>提示:</strong></p><ul> <li>树上节点的数目在范围 <code>[2, 1000]</code> 内</li> <li><code>-2<sup>31</sup> <= Node.val <= 2<sup>31</sup> - 1</code></li></ul>
<p>给你二叉搜索树的根节点 <code>root</code> ,该树中的两个节点被<span style="color:red">错误</span>地交换。请在不改变其结构的情况下,恢复这棵树。</p><p><strong>进阶:</strong>使用 O(<em>n</em>) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗?</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0099.Recover%20Binary%20Search%20Tree/images/recover1.jpg" style="width: 422px; height: 302px;" /><pre><strong>输入:</strong>root = [1,3,null,null,2]<strong><br />输出:</strong>[3,1,null,null,2]<strong><br />解释:</strong>3 不能是 1 左孩子,因为 3 > 1 。交换 1 和 3 使二叉搜索树有效。</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0099.Recover%20Binary%20Search%20Tree/images/recover2.jpg" style="width: 581px; height: 302px;" /><pre><strong>输入:</strong>root = [3,1,4,null,null,2]<strong><br />输出:</strong>[2,1,4,null,null,3]<strong><br />解释:</strong>2 不能在 3 的右子树中,因为 2 < 3 。交换 2 和 3 使二叉搜索树有效。</pre
><p><strong>提示:</strong></p><ul> <li>树上节点的数目在范围 <code>[2, 1000]</code> 内</li> <li><code>-2<sup>31</sup> <= Node.val <= 2<sup>31</sup> - 1</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/1.leetcode-树/7.94-二叉树的中序遍历/solution.md
浏览文件 @
93c81596
# 二叉树的中序遍历
<p>给定一个二叉树的根节点 <code>root</code> ,返回它的 <strong>中序</strong> 遍历。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0094.Binary%20Tree%20Inorder%20Traversal/images/inorder_1.jpg" style="width: 202px; height: 324px;" /><pre><strong>输入:</strong>root = [1,null,2,3]<strong><br />输出:</strong>[1,3,2]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>root = []<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>root = [1]<strong><br />输出:</strong>[1]</pre><p><strong>示例 4:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0094.Binary%20Tree%20Inorder%20Traversal/images/inorder_5.jpg" style="width: 202px; height: 202px;" /><pre><strong>输入:</strong>root = [1,2]<strong><br />输出:</strong>[2,1]</pre><p><strong>示例 5:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0094.Binary%20Tree%20Inorder%20Traversal/images/inorder_4.jpg" style="width: 202px; height: 202px;" /><pre><strong>输入:</strong>root = [1,null,2]<strong><br />输出:</strong>[1,2]</pre><p> </p><p><strong>提示:</strong></p><ul> <li>树中节点数目在范围 <code>[0, 100]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li></ul><p> </p
><p><strong>进阶:</strong> 递归算法很简单,你可以通过迭代算法完成吗?</p>
<p>给定一个二叉树的根节点 <code>root</code> ,返回它的 <strong>中序</strong> 遍历。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0094.Binary%20Tree%20Inorder%20Traversal/images/inorder_1.jpg" style="width: 202px; height: 324px;" /><pre><strong>输入:</strong>root = [1,null,2,3]<strong><br />输出:</strong>[1,3,2]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>root = []<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>root = [1]<strong><br />输出:</strong>[1]</pre><p><strong>示例 4:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0094.Binary%20Tree%20Inorder%20Traversal/images/inorder_5.jpg" style="width: 202px; height: 202px;" /><pre><strong>输入:</strong>root = [1,2]<strong><br />输出:</strong>[2,1]</pre><p><strong>示例 5:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0094.Binary%20Tree%20Inorder%20Traversal/images/inorder_4.jpg" style="width: 202px; height: 202px;" /><pre><strong>输入:</strong>root = [1,null,2]<strong><br />输出:</strong>[1,2]</pre><p><strong>提示:</strong></p><ul> <li>树中节点数目在范围 <code>[0, 100]</code> 内</li> <li><code>-100 <= Node.val <= 100</code></li></ul
><p><strong>进阶:</strong> 递归算法很简单,你可以通过迭代算法完成吗?</p>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/1.leetcode-树/9.102-二叉树的层序遍历/solution.md
浏览文件 @
93c81596
...
...
@@ -2,7 +2,7 @@
<p>
给你一个二叉树,请你返回其按
<strong>
层序遍历
</strong>
得到的节点值。 (即逐层地,从左到右访问所有节点)。
</p>
<p>
</p>
<p><strong>
示例:
</strong><br
/>
...
...
data/3.算法高阶/2.leetcode-哈希表/10.166-分数到小数/solution.md
浏览文件 @
93c81596
...
...
@@ -8,7 +8,7 @@
<p
class=
"MachineTrans-lang-zh-CN"
>
对于所有给定的输入,
<strong>
保证
</strong>
答案字符串的长度小于
<code>
10
<sup>
4
</sup></code>
。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -50,7 +50,7 @@
<strong>
输出:
</strong>
"0.2"
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/2.leetcode-哈希表/2.205-同构字符串/solution.md
浏览文件 @
93c81596
...
...
@@ -6,7 +6,7 @@
<p>
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -30,7 +30,7 @@
<strong>
输出:
</strong>
true
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/2.leetcode-哈希表/3.36-有效的数独/solution.md
浏览文件 @
93c81596
...
...
@@ -12,7 +12,7 @@
<li>
一个有效的数独(部分已被填充)不一定是可解的。
</li>
<li>
只需要根据以上规则,验证已经填入的数字是否有效即可。
</li>
</ul>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0036.Valid%20Sudoku/images/250px-sudoku-by-l2g-20050714svg.png"
style="height:250px; width:250px" />
...
...
@@ -51,7 +51,7 @@ board =
<strong><br
/>
输出:
</strong>
false
<strong><br
/>
解释:
</strong>
除了第一行的第一个数字从
<strong>
5
</strong>
改为
<strong>
8
</strong>
以外,空格内其他数字均与 示例1 相同。 但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
board.length == 9
</code></li>
...
...
data/3.算法高阶/2.leetcode-哈希表/4.41-缺失的第一个正数/solution.md
浏览文件 @
93c81596
# 缺失的第一个正数
<p>
给你一个未排序的整数数组
<code>
nums
</code>
,请你找出其中没有出现的最小的正整数。
</p><p>
</p><p><strong>
进阶:
</strong>
你可以实现时间复杂度为
<code>
O(n)
</code>
并且只使用常数级别额外空间的解决方案吗?
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,0]
<strong><br
/>
输出:
</strong>
3
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,4,-1,1]
<strong><br
/>
输出:
</strong>
2
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [7,8,9,11,12]
<strong><br
/>
输出:
</strong>
1
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
nums.length
<=
300</
code
></li>
<li><code>
-2
<sup>
31
</sup>
<
=
nums
[
i
]
<=
2<
sup
>
31
</sup>
- 1
</code></li></ul>
<p>
给你一个未排序的整数数组
<code>
nums
</code>
,请你找出其中没有出现的最小的正整数。
</p><p>
<strong>
进阶:
</strong>
你可以实现时间复杂度为
<code>
O(n)
</code>
并且只使用常数级别额外空间的解决方案吗?
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,0]
<strong><br
/>
输出:
</strong>
3
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,4,-1,1]
<strong><br
/>
输出:
</strong>
2
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [7,8,9,11,12]
<strong><br
/>
输出:
</strong>
1
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
nums.length
<=
300</
code
></li>
<li><code>
-2
<sup>
31
</sup>
<
=
nums
[
i
]
<=
2<
sup
>
31
</sup>
- 1
</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/2.leetcode-哈希表/5.76-最小覆盖子串/solution.md
浏览文件 @
93c81596
# 最小覆盖子串
<p>
给你一个字符串
<code>
s
</code>
、一个字符串
<code>
t
</code>
。返回
<code>
s
</code>
中涵盖
<code>
t
</code>
所有字符的最小子串。如果
<code>
s
</code>
中不存在涵盖
<code>
t
</code>
所有字符的子串,则返回空字符串
<code>
""
</code>
。
</p><p><strong>
注意:
</strong>
如果
<code>
s
</code>
中存在这样的子串,我们保证它是唯一的答案。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "ADOBECODEBANC", t = "ABC"
<strong><br
/>
输出:
</strong>
"BANC"
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "a", t = "a"
<strong><br
/>
输出:
</strong>
"a"
</pre><p>
</p><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
,
t.length
<=
10<
sup
>
5
</sup></code></li>
<li><code>
s
</code>
和
<code>
t
</code>
由英文字母组成
</li></ul><p>
</p
><strong>
进阶:
</strong>
你能设计一个在
<code>
o(n)
</code>
时间内解决此问题的算法吗?
<p>
给你一个字符串
<code>
s
</code>
、一个字符串
<code>
t
</code>
。返回
<code>
s
</code>
中涵盖
<code>
t
</code>
所有字符的最小子串。如果
<code>
s
</code>
中不存在涵盖
<code>
t
</code>
所有字符的子串,则返回空字符串
<code>
""
</code>
。
</p><p><strong>
注意:
</strong>
如果
<code>
s
</code>
中存在这样的子串,我们保证它是唯一的答案。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "ADOBECODEBANC", t = "ABC"
<strong><br
/>
输出:
</strong>
"BANC"
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "a", t = "a"
<strong><br
/>
输出:
</strong>
"a"
</pre><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
,
t.length
<=
10<
sup
>
5
</sup></code></li>
<li><code>
s
</code>
和
<code>
t
</code>
由英文字母组成
</li></ul
><strong>
进阶:
</strong>
你能设计一个在
<code>
o(n)
</code>
时间内解决此问题的算法吗?
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/2.leetcode-哈希表/7.126-单词接龙 II/solution.md
浏览文件 @
93c81596
...
...
@@ -12,7 +12,7 @@
<p>
给你两个单词
<code>
beginWord
</code>
和
<code>
endWord
</code>
,以及一个字典
<code>
wordList
</code>
。请你找出并返回所有从
<code>
beginWord
</code>
到
<code>
endWord
</code>
的
<strong>
最短转换序列
</strong>
,如果不存在这样的转换序列,返回一个空列表。每个序列都应该以单词列表
<em>
</em><code>
[beginWord, s
<sub>
1
</sub>
, s
<sub>
2
</sub>
, ..., s
<sub>
k
</sub>
]
</code>
的形式返回。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -40,7 +40,7 @@
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/2.leetcode-哈希表/8.127-单词接龙/solution.md
浏览文件 @
93c81596
...
...
@@ -31,7 +31,7 @@
<strong>
解释:
</strong>
endWord "cog" 不在字典中,所以无法进行转换。
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/2.leetcode-哈希表/9.128-最长连续序列/solution.md
浏览文件 @
93c81596
...
...
@@ -4,7 +4,7 @@
<p>
请你设计并实现时间复杂度为
<code>
O(n)
</code><em>
</em>
的算法解决此问题。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -23,7 +23,7 @@
<strong>
输出:
</strong>
9
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/3.leetcode-图与搜索/10.130-被围绕的区域/solution.md
浏览文件 @
93c81596
...
...
@@ -3,7 +3,7 @@
给你一个
<code>
m x n
</code>
的矩阵
<code>
board
</code>
,由若干字符
<code>
'X'
</code>
和
<code>
'O'
</code>
,找到所有被
<code>
'X'
</code>
围绕的区域,并将这些区域里所有的
<code>
'O'
</code>
用
<code>
'X'
</code>
填充。
<div
class=
"original__bRMd"
>
<div>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://assets.leetcode.com/uploads/2021/02/19/xogrid.jpg"
style=
"width: 550px; height: 237px;"
/>
...
...
@@ -24,7 +24,7 @@
<strong>
输出:
</strong>
[["X"]]
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/3.leetcode-图与搜索/3.332-重新安排行程/solution.md
浏览文件 @
93c81596
...
...
@@ -10,7 +10,7 @@
<p>
假定所有机票至少存在一种合理的行程。且所有的机票 必须都用一次 且 只能用一次。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://assets.leetcode.com/uploads/2021/03/14/itinerary1-graph.jpg"
style=
"width: 382px; height: 222px;"
/>
...
...
@@ -31,7 +31,7 @@
<strong>
解释:
</strong>
另一种有效的行程是 ["JFK","SFO","ATL","JFK","ATL","SFO"] ,但是它字典排序更大更靠后。
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/3.leetcode-图与搜索/4.207-课程表/solution.md
浏览文件 @
93c81596
...
...
@@ -10,7 +10,7 @@
<p>
请你判断是否可能完成所有课程的学习?如果可以,返回
<code>
true
</code>
;否则,返回
<code>
false
</code>
。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -30,7 +30,7 @@
<strong>
解释:
</strong>
总共有 2 门课程。学习课程 1 之前,你需要先完成课程 0 ;并且学习课程 0 之前,你还应先完成课程 1 。这是不可能的。
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/3.leetcode-图与搜索/5.329-矩阵中的最长递增路径/solution.md
浏览文件 @
93c81596
...
...
@@ -4,7 +4,7 @@
<p>
对于每个单元格,你可以往上,下,左,右四个方向移动。 你
<strong>
不能
</strong>
在
<strong>
对角线
</strong>
方向上移动或移动到
<strong>
边界外
</strong>
(即不允许环绕)。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://assets.leetcode.com/uploads/2021/01/05/grid1.jpg"
style=
"width: 242px; height: 242px;"
/>
...
...
@@ -33,7 +33,7 @@
<strong>
输出:
</strong>
1
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/3.leetcode-图与搜索/7.79-单词搜索/solution.md
浏览文件 @
93c81596
# 单词搜索
<p>给定一个 <code>m x n</code> 二维字符网格 <code>board</code> 和一个字符串单词 <code>word</code> 。如果 <code>word</code> 存在于网格中,返回 <code>true</code> ;否则,返回 <code>false</code> 。</p><p>单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0079.Word%20Search/images/word2.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"<strong><br />输出:</strong>true</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0079.Word%20Search/images/word-1.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "SEE"<strong><br />输出:</strong>true</pre><p><strong>示例 3:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0079.Word%20Search/images/word3.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCB"<strong><br />输出:</strong>false</pre><p> </p><p><strong>提示:</strong></p><ul> <li><code>m == board.length</code></li> <li><code>n = board[i].length</code></li> <li><code>1 <= m, n <= 6</code></li> <li><code>1 <= word.length <= 15</code></li> <li><code>board</code> 和 <code>word</code> 仅由大小写英文字母组成</li></ul><p> </p
><p><strong>进阶:</strong>你可以使用搜索剪枝的技术来优化解决方案,使其在 <code>board</code> 更大的情况下可以更快解决问题?</p>
<p>给定一个 <code>m x n</code> 二维字符网格 <code>board</code> 和一个字符串单词 <code>word</code> 。如果 <code>word</code> 存在于网格中,返回 <code>true</code> ;否则,返回 <code>false</code> 。</p><p>单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0079.Word%20Search/images/word2.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"<strong><br />输出:</strong>true</pre><p><strong>示例 2:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0079.Word%20Search/images/word-1.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "SEE"<strong><br />输出:</strong>true</pre><p><strong>示例 3:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0079.Word%20Search/images/word3.jpg" style="width: 322px; height: 242px;" /><pre><strong>输入:</strong>board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCB"<strong><br />输出:</strong>false</pre><p><strong>提示:</strong></p><ul> <li><code>m == board.length</code></li> <li><code>n = board[i].length</code></li> <li><code>1 <= m, n <= 6</code></li> <li><code>1 <= word.length <= 15</code></li> <li><code>board</code> 和 <code>word</code> 仅由大小写英文字母组成</li></ul
><p><strong>进阶:</strong>你可以使用搜索剪枝的技术来优化解决方案,使其在 <code>board</code> 更大的情况下可以更快解决问题?</p>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/3.leetcode-图与搜索/8.112-路径总和/solution.md
浏览文件 @
93c81596
...
...
@@ -4,7 +4,7 @@
<p><strong>
叶子节点
</strong>
是指没有子节点的节点。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://assets.leetcode.com/uploads/2021/01/18/pathsum1.jpg"
style=
"width: 500px; height: 356px;"
/>
...
...
@@ -30,7 +30,7 @@
<strong>
输出:
</strong>
false
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/3.leetcode-图与搜索/9.113-路径总和 II/solution.md
浏览文件 @
93c81596
...
...
@@ -6,7 +6,7 @@
<div
class=
"original__bRMd"
>
<div>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://assets.leetcode.com/uploads/2021/01/18/pathsumii1.jpg"
style=
"width: 500px; height: 356px;"
/>
...
...
@@ -32,7 +32,7 @@
<strong>
输出:
</strong>
[]
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/4.leetcode-数学/10.60-排列序列/solution.md
浏览文件 @
93c81596
# 排列序列
<p>
给出集合
<code>
[1,2,3,...,n]
</code>
,其所有元素共有
<code>
n!
</code>
种排列。
</p><p>
按大小顺序列出所有排列情况,并一一标记,当
<code>
n = 3
</code>
时, 所有排列如下:
</p><ol>
<li><code>
"123"
</code></li>
<li><code>
"132"
</code></li>
<li><code>
"213"
</code></li>
<li><code>
"231"
</code></li>
<li><code>
"312"
</code></li>
<li><code>
"321"
</code></li></ol><p>
给定
<code>
n
</code>
和
<code>
k
</code>
,返回第
<code>
k
</code>
个排列。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
n = 3, k = 3
<strong><br
/>
输出:
</strong>
"213"
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
n = 4, k = 9
<strong><br
/>
输出:
</strong>
"2314"
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
n = 3, k = 1
<strong><br
/>
输出:
</strong>
"123"
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
n
<=
9</
code
></li>
<li><code>
1
<
=
k
<=
n
!</
code
></li></ul>
<p>
给出集合
<code>
[1,2,3,...,n]
</code>
,其所有元素共有
<code>
n!
</code>
种排列。
</p><p>
按大小顺序列出所有排列情况,并一一标记,当
<code>
n = 3
</code>
时, 所有排列如下:
</p><ol>
<li><code>
"123"
</code></li>
<li><code>
"132"
</code></li>
<li><code>
"213"
</code></li>
<li><code>
"231"
</code></li>
<li><code>
"312"
</code></li>
<li><code>
"321"
</code></li></ol><p>
给定
<code>
n
</code>
和
<code>
k
</code>
,返回第
<code>
k
</code>
个排列。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
n = 3, k = 3
<strong><br
/>
输出:
</strong>
"213"
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
n = 4, k = 9
<strong><br
/>
输出:
</strong>
"2314"
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
n = 3, k = 1
<strong><br
/>
输出:
</strong>
"123"
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
n
<=
9</
code
></li>
<li><code>
1
<
=
k
<=
n
!</
code
></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/4.leetcode-数学/3.50-Pow(x, n)/solution.md
浏览文件 @
93c81596
# Pow(x, n)
<p>
实现
<a
href=
"https://www.cplusplus.com/reference/valarray/pow/"
target=
"_blank"
>
pow(
<em>
x
</em>
,
<em>
n
</em>
)
</a>
,即计算 x 的 n 次幂函数(即,x
<sup><span
style=
"font-size:10.8333px"
>
n
</span></sup>
)。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
x = 2.00000, n = 10
<strong><br
/>
输出:
</strong>
1024.00000
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
x = 2.10000, n = 3
<strong><br
/>
输出:
</strong>
9.26100
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
x = 2.00000, n = -2
<strong><br
/>
输出:
</strong>
0.25000
<strong><br
/>
解释:
</strong>
2
<sup>
-2
</sup>
= 1/2
<sup>
2
</sup>
= 1/4 = 0.25
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
-100.0
<
x
<
100.0</
code
></li>
<li><code>
-2
<sup>
31
</sup>
<
=
n
<= 2<
sup
>
31
</sup>
-1
</code></li>
<li><code>
-10
<sup>
4
</sup>
<
=
x
<
sup
>
n
</sup>
<
=
10<
sup
>
4
</sup></code></li></ul>
<p>
实现
<a
href=
"https://www.cplusplus.com/reference/valarray/pow/"
target=
"_blank"
>
pow(
<em>
x
</em>
,
<em>
n
</em>
)
</a>
,即计算 x 的 n 次幂函数(即,x
<sup><span
style=
"font-size:10.8333px"
>
n
</span></sup>
)。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
x = 2.00000, n = 10
<strong><br
/>
输出:
</strong>
1024.00000
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
x = 2.10000, n = 3
<strong><br
/>
输出:
</strong>
9.26100
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
x = 2.00000, n = -2
<strong><br
/>
输出:
</strong>
0.25000
<strong><br
/>
解释:
</strong>
2
<sup>
-2
</sup>
= 1/2
<sup>
2
</sup>
= 1/4 = 0.25
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
-100.0
<
x
<
100.0</
code
></li>
<li><code>
-2
<sup>
31
</sup>
<
=
n
<= 2<
sup
>
31
</sup>
-1
</code></li>
<li><code>
-10
<sup>
4
</sup>
<
=
x
<
sup
>
n
</sup>
<
=
10<
sup
>
4
</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/4.leetcode-数学/4.9-回文数/solution.md
浏览文件 @
93c81596
# 回文数
<p>
给你一个整数
<code>
x
</code>
,如果
<code>
x
</code>
是一个回文整数,返回
<code>
true
</code>
;否则,返回
<code>
false
</code>
。
</p><p>
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,
<code>
121
</code>
是回文,而
<code>
123
</code>
不是。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
x = 121
<strong><br
/>
输出:
</strong>
true
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
x = -121
<strong><br
/>
输出:
</strong>
false
<strong><br
/>
解释:
</strong>
从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
x = 10
<strong><br
/>
输出:
</strong>
false
<strong><br
/>
解释:
</strong>
从右向左读, 为 01 。因此它不是一个回文数。
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
x = -101
<strong><br
/>
输出:
</strong>
false
</pre><p>
</p><p><strong>
提示:
</strong></p><ul>
<li><code>
-2
<sup>
31
</sup>
<
=
x
<=
2<
sup
>
31
</sup>
- 1
</code></li></ul><p>
</p
><p><strong>
进阶:
</strong>
你能不将整数转为字符串来解决这个问题吗?
</p>
<p>
给你一个整数
<code>
x
</code>
,如果
<code>
x
</code>
是一个回文整数,返回
<code>
true
</code>
;否则,返回
<code>
false
</code>
。
</p><p>
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,
<code>
121
</code>
是回文,而
<code>
123
</code>
不是。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
x = 121
<strong><br
/>
输出:
</strong>
true
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
x = -121
<strong><br
/>
输出:
</strong>
false
<strong><br
/>
解释:
</strong>
从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
x = 10
<strong><br
/>
输出:
</strong>
false
<strong><br
/>
解释:
</strong>
从右向左读, 为 01 。因此它不是一个回文数。
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
x = -101
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
提示:
</strong></p><ul>
<li><code>
-2
<sup>
31
</sup>
<
=
x
<=
2<
sup
>
31
</sup>
- 1
</code></li></ul
><p><strong>
进阶:
</strong>
你能不将整数转为字符串来解决这个问题吗?
</p>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/4.leetcode-数学/5.66-加一/solution.md
浏览文件 @
93c81596
# 加一
<p>
给定一个由
<strong>
整数
</strong>
组成的
<strong>
非空
</strong>
数组所表示的非负整数,在该数的基础上加一。
</p><p>
最高位数字存放在数组的首位, 数组中每个元素只存储
<strong>
单个
</strong>
数字。
</p><p>
你可以假设除了整数 0 之外,这个整数不会以零开头。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
digits = [1,2,3]
<strong><br
/>
输出:
</strong>
[1,2,4]
<strong><br
/>
解释:
</strong>
输入数组表示数字 123。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
digits = [4,3,2,1]
<strong><br
/>
输出:
</strong>
[4,3,2,2]
<strong><br
/>
解释:
</strong>
输入数组表示数字 4321。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
digits = [0]
<strong><br
/>
输出:
</strong>
[1]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
digits.length
<=
100</
code
></li>
<li><code>
0
<
=
digits
[
i
]
<=
9</
code
></li></ul>
<p>
给定一个由
<strong>
整数
</strong>
组成的
<strong>
非空
</strong>
数组所表示的非负整数,在该数的基础上加一。
</p><p>
最高位数字存放在数组的首位, 数组中每个元素只存储
<strong>
单个
</strong>
数字。
</p><p>
你可以假设除了整数 0 之外,这个整数不会以零开头。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
digits = [1,2,3]
<strong><br
/>
输出:
</strong>
[1,2,4]
<strong><br
/>
解释:
</strong>
输入数组表示数字 123。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
digits = [4,3,2,1]
<strong><br
/>
输出:
</strong>
[4,3,2,2]
<strong><br
/>
解释:
</strong>
输入数组表示数字 4321。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
digits = [0]
<strong><br
/>
输出:
</strong>
[1]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
digits.length
<=
100</
code
></li>
<li><code>
0
<
=
digits
[
i
]
<=
9</
code
></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/4.leetcode-数学/6.7-整数反转/solution.md
浏览文件 @
93c81596
# 整数反转
<p>
给你一个 32 位的有符号整数
<code>
x
</code>
,返回将
<code>
x
</code>
中的数字部分反转后的结果。
</p><p>
如果反转后整数超过 32 位的有符号整数的范围
<code>
[−2
<sup>
31
</sup>
, 2
<sup>
31
</sup>
− 1]
</code>
,就返回 0。
</p><strong>
假设环境不允许存储 64 位整数(有符号或无符号)。
</strong><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
x = 123
<strong><br
/>
输出:
</strong>
321
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
x = -123
<strong><br
/>
输出:
</strong>
-321
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
x = 120
<strong><br
/>
输出:
</strong>
21
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
x = 0
<strong><br
/>
输出:
</strong>
0
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
-2
<sup>
31
</sup>
<
=
x
<=
2<
sup
>
31
</sup>
- 1
</code></li></ul>
<p>
给你一个 32 位的有符号整数
<code>
x
</code>
,返回将
<code>
x
</code>
中的数字部分反转后的结果。
</p><p>
如果反转后整数超过 32 位的有符号整数的范围
<code>
[−2
<sup>
31
</sup>
, 2
<sup>
31
</sup>
− 1]
</code>
,就返回 0。
</p><strong>
假设环境不允许存储 64 位整数(有符号或无符号)。
</strong><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
x = 123
<strong><br
/>
输出:
</strong>
321
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
x = -123
<strong><br
/>
输出:
</strong>
-321
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
x = 120
<strong><br
/>
输出:
</strong>
21
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
x = 0
<strong><br
/>
输出:
</strong>
0
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
-2
<sup>
31
</sup>
<
=
x
<=
2<
sup
>
31
</sup>
- 1
</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/5.leetcode-设计/10.297-二叉树的序列化与反序列化/solution.md
浏览文件 @
93c81596
...
...
@@ -6,7 +6,7 @@
<p><strong>
提示:
</strong>
输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅
<a
href=
"/faq/#binary-tree"
>
LeetCode 序列化二叉树的格式
</a>
。你并非必须采取这种方式,你也可以采用其他的方法解决这个问题。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://assets.leetcode.com/uploads/2020/09/15/serdeser.jpg"
style=
"width: 442px; height: 324px;"
/>
...
...
@@ -40,7 +40,7 @@
<strong>
输出:
</strong>
[1,2]
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/5.leetcode-设计/4.460-LFU 缓存/solution.md
浏览文件 @
93c81596
...
...
@@ -16,7 +16,7 @@
<p>
当一个键首次插入到缓存中时,它的使用计数器被设置为
<code>
1
</code>
(由于 put 操作)。对缓存中的键执行
<code>
get
</code>
或
<code>
put
</code>
操作,使用计数器的值将会递增。
</p>
<p>
</p>
<p><strong>
示例:
</strong></p>
...
...
@@ -71,7 +71,7 @@ lFUCache.get(4); // 返回 4
// cache=[3,4], cnt(4)=2, cnt(3)=3</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
@@ -80,7 +80,7 @@ lFUCache.get(4); // 返回 4
<li>
最多调用
<code>
10
<sup>
5
</sup></code>
次
<code>
get
</code>
和
<code>
put
</code>
方法
</li>
</ul>
<p>
</p>
<p><strong>
进阶:
</strong>
你可以为这两种操作设计时间复杂度为
<code>
O(1)
</code>
的实现吗?
</p>
...
...
data/3.算法高阶/5.leetcode-设计/5.146-LRU 缓存机制/solution.md
浏览文件 @
93c81596
...
...
@@ -12,13 +12,13 @@
<li><code>
void put(int key, int value)
</code>
如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。
</li>
</ul>
<p>
</p>
</div>
</div>
<p><strong>
进阶
</strong>
:你是否可以在
<code>
O(1)
</code>
时间复杂度内完成这两种操作?
</p>
<p>
</p>
<p><strong>
示例:
</strong></p>
...
...
@@ -57,7 +57,7 @@ lRUCache.get(4); // 返回 4
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/5.leetcode-设计/6.173-二叉搜索树迭代器/solution.md
浏览文件 @
93c81596
...
...
@@ -15,7 +15,7 @@
<p>
你可以假设
<code>
next()
</code>
调用总是有效的,也就是说,当调用
<code>
next()
</code>
时,BST 的中序遍历中至少存在一个下一个数字。
</p>
<p>
</p>
<p><strong>
示例:
</strong></p>
<img
alt=
""
src=
"https://assets.leetcode.com/uploads/2018/12/25/bst-tree.png"
style=
"width: 189px; height: 178px;"
/>
...
...
@@ -53,7 +53,7 @@ bSTIterator.next(); // 返回 20
bSTIterator.hasNext(); // 返回 False
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
@@ -63,7 +63,7 @@ bSTIterator.hasNext(); // 返回 False
<li>
最多调用
<code>
10
<sup>
5
</sup></code>
次
<code>
hasNext
</code>
和
<code>
next
</code>
操作
</li>
</ul>
<p>
</p>
<p><strong>
进阶:
</strong></p>
...
...
data/3.算法高阶/5.leetcode-设计/7.208-实现 Trie (前缀树)/solution.md
浏览文件 @
93c81596
...
...
@@ -11,16 +11,14 @@
<li><code>
boolean startsWith(String prefix)
</code>
如果之前已经插入的字符串
<code>
word
</code>
的前缀之一为
<code>
prefix
</code>
,返回
<code>
true
</code>
;否则,返回
<code>
false
</code>
。
</li>
</ul>
<p>
</p>
<p><strong>
示例:
</strong></p>
<pre>
<strong>
输入
</strong>
```
json
[
"Trie"
,
"insert"
,
"search"
,
"search"
,
"startsWith"
,
"insert"
,
"search"
]
[[],
[
"apple"
],
[
"apple"
],
[
"app"
],
[
"app"
],
[
"app"
],
[
"app"
]]
```
<strong>
输出
</strong>
...
...
@@ -28,23 +26,15 @@
<strong>
解释
</strong>
```
java
Trie
trie
=
new
Trie
();
trie
.
insert
(
"apple"
);
trie
.
search
(
"apple"
);
// 返回 True
trie
.
search
(
"app"
);
// 返回 False
trie
.
startsWith
(
"app"
);
// 返回 True
trie
.
insert
(
"app"
);
trie
.
search
(
"app"
);
// 返回 True
</pre>
<p>
</p>
```
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/6.leetcode-动态规划/1.22-括号生成/solution.md
浏览文件 @
93c81596
# 括号生成
<p>
数字
<code>
n
</code>
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且
<strong>
有效的
</strong>
括号组合。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
n = 3
<strong><br
/>
输出:
</strong>
["((()))","(()())","(())()","()(())","()()()"]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
n = 1
<strong><br
/>
输出:
</strong>
["()"]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
n
<=
8</
code
></li></ul>
<p>
数字
<code>
n
</code>
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且
<strong>
有效的
</strong>
括号组合。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
n = 3
<strong><br
/>
输出:
</strong>
["((()))","(()())","(())()","()(())","()()()"]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
n = 1
<strong><br
/>
输出:
</strong>
["()"]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
n
<=
8</
code
></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/6.leetcode-动态规划/10.63-不同路径 II/solution.md
浏览文件 @
93c81596
...
...
@@ -6,7 +6,7 @@
<p>
<img src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0063.Unique%20Paths%20II/images/robot_maze.png"
style="height: 183px; width: 400px;" />
</p>
<p>
网格中的障碍物和空位置分别用
<code>
1
</code>
和
<code>
0
</code>
来表示。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img alt=""
src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0063.Unique%20Paths%20II/images/robot1.jpg"
style="width: 242px; height: 242px;" />
...
...
@@ -15,7 +15,7 @@
src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0063.Unique%20Paths%20II/images/robot2.jpg"
style="width: 162px; height: 162px;" />
<pre><strong>
输入:
</strong>
obstacleGrid = [[0,1],[0,0]]
<strong><br
/>
输出:
</strong>
1
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
m == obstacleGrid.length
</code></li>
...
...
data/3.算法高阶/6.leetcode-动态规划/2.64-最小路径和/solution.md
浏览文件 @
93c81596
# 最小路径和
<p>给定一个包含非负整数的 <code><em>m</em> x <em>n</em></code> 网格 <code>grid</code> ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。</p><p><strong>说明:</strong>每次只能向下或者向右移动一步。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0064.Minimum%20Path%20Sum/images/minpath.jpg" style="width: 242px; height: 242px;" /><pre><strong>输入:</strong>grid = [[1,3,1],[1,5,1],[4,2,1]]<strong><br />输出:</strong>7<strong><br />解释:</strong>因为路径 1→3→1→1→1 的总和最小。</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>grid = [[1,2,3],[4,5,6]]<strong><br />输出:</strong>12</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>m == grid.length</code></li> <li><code>n == grid[i].length</code></li> <li><code>1 <= m, n <= 200</code></li> <li><code>0 <= grid[i][j] <= 100</code></li></ul>
<p>给定一个包含非负整数的 <code><em>m</em> x <em>n</em></code> 网格 <code>grid</code> ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。</p><p><strong>说明:</strong>每次只能向下或者向右移动一步。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0064.Minimum%20Path%20Sum/images/minpath.jpg" style="width: 242px; height: 242px;" /><pre><strong>输入:</strong>grid = [[1,3,1],[1,5,1],[4,2,1]]<strong><br />输出:</strong>7<strong><br />解释:</strong>因为路径 1→3→1→1→1 的总和最小。</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>grid = [[1,2,3],[4,5,6]]<strong><br />输出:</strong>12</pre
><p><strong>提示:</strong></p><ul> <li><code>m == grid.length</code></li> <li><code>n == grid[i].length</code></li> <li><code>1 <= m, n <= 200</code></li> <li><code>0 <= grid[i][j] <= 100</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/6.leetcode-动态规划/3.91-解码方法/solution.md
浏览文件 @
93c81596
...
...
@@ -12,7 +12,7 @@
</p>
<p>
给你一个只含数字的
<strong>
非空
</strong>
字符串
<code>
s
</code>
,请计算并返回
<strong>
解码
</strong>
方法的
<strong>
总数
</strong>
。
</p>
<p>
题目数据保证答案肯定是一个
<strong>
32 位
</strong>
的整数。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<pre><strong>
输入:
</strong>
s = "12"
<strong><br
/>
输出:
</strong>
2
<strong><br
/>
解释:
</strong>
它可以解码为 "AB"(1 2)或者 "L"(12)。
</pre>
<p><strong>
示例 2:
</strong></p>
...
...
@@ -21,7 +21,7 @@
<pre><strong>
输入:
</strong>
s = "0"
<strong><br
/>
输出:
</strong>
0
<strong><br
/>
解释:
</strong>
没有字符映射到以 0 开头的数字。含有 0 的有效映射是 'J' -> "10" 和 'T'-> "20" 。由于没有字符,因此没有有效的方法对此进行解码,因为所有数字都需要映射。
</pre>
<p><strong>
示例 4:
</strong></p>
<pre><strong>
输入:
</strong>
s = "06"
<strong><br
/>
输出:
</strong>
0
<strong><br
/>
解释:
</strong>
"06" 不能映射到 "F" ,因为字符串含有前导 0("6" 和 "06" 在映射中并不等价)。
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
1
<
=
s.length
<=
100</
code
></li>
...
...
data/3.算法高阶/6.leetcode-动态规划/4.10-正则表达式匹配/solution.md
浏览文件 @
93c81596
# 正则表达式匹配
<p>
给你一个字符串
<code>
s
</code>
和一个字符规律
<code>
p
</code>
,请你来实现一个支持
<code>
'.'
</code>
和
<code>
'
*'</code> 的正则表达式匹配。</p><ul> <li><code>'.'</code> 匹配任意单个字符</li> <li><code>'*
'
</code>
匹配零个或多个前面的那一个元素
</li></ul><p>
所谓匹配,是要涵盖
<strong>
整个
</strong>
字符串
<code>
s
</code>
的,而不是部分字符串。
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "aa" p = "a"
<strong><br
/>
输出:
</strong>
false
<strong><br
/>
解释:
</strong>
"a" 无法匹配 "aa" 整个字符串。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "aa" p = "a
*"<strong><br />输出:</strong>true<strong><br />解释:</strong>因为 '*
' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。因此,字符串 "aa" 可被视为 'a' 重复了一次。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "ab" p = ".
*"<strong><br />输出:</strong>true<strong><br />解释:</strong>".*
" 表示可匹配零个或多个('
*')任意字符('.')。</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>s = "aab" p = "c*
a
*b"<strong><br />输出:</strong>true<strong><br />解释:</strong>因为 '*
' 表示零个或多个,这里 'c' 为 0 个, 'a' 被重复一次。因此可以匹配字符串 "aab"。
</pre><p><strong>
示例 5:
</strong></p><pre><strong>
输入:
</strong>
s = "mississippi" p = "mis
*is*
p
*."<strong><br />输出:</strong>false</pre><p>
</p><p>
<strong>提示:</strong></p><ul> <li><code>0 <= s.length <= 20</code></li> <li><code>0 <= p.length <= 30</code></li> <li><code>s</code> 可能为空,且只包含从 <code>a-z</code> 的小写字母。</li> <li><code>p</code> 可能为空,且只包含从 <code>a-z</code> 的小写字母,以及字符 <code>.</code> 和 <code>*
</code>
。
</li>
<li>
保证每次出现字符
<code>
*
</code>
时,前面都匹配到有效的字符
</li></ul>
<p>
给你一个字符串
<code>
s
</code>
和一个字符规律
<code>
p
</code>
,请你来实现一个支持
<code>
'.'
</code>
和
<code>
'
*'</code> 的正则表达式匹配。</p><ul> <li><code>'.'</code> 匹配任意单个字符</li> <li><code>'*
'
</code>
匹配零个或多个前面的那一个元素
</li></ul><p>
所谓匹配,是要涵盖
<strong>
整个
</strong>
字符串
<code>
s
</code>
的,而不是部分字符串。
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "aa" p = "a"
<strong><br
/>
输出:
</strong>
false
<strong><br
/>
解释:
</strong>
"a" 无法匹配 "aa" 整个字符串。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "aa" p = "a
*"<strong><br />输出:</strong>true<strong><br />解释:</strong>因为 '*
' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。因此,字符串 "aa" 可被视为 'a' 重复了一次。
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "ab" p = ".
*"<strong><br />输出:</strong>true<strong><br />解释:</strong>".*
" 表示可匹配零个或多个('
*')任意字符('.')。</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>s = "aab" p = "c*
a
*b"<strong><br />输出:</strong>true<strong><br />解释:</strong>因为 '*
' 表示零个或多个,这里 'c' 为 0 个, 'a' 被重复一次。因此可以匹配字符串 "aab"。
</pre><p><strong>
示例 5:
</strong></p><pre><strong>
输入:
</strong>
s = "mississippi" p = "mis
*is*
p
*."<strong><br />输出:</strong>false</pre><p><strong>提示:</strong></p><ul> <li><code>0 <= s.length <= 20</code></li> <li><code>0 <= p.length <= 30</code></li> <li><code>s</code> 可能为空,且只包含从 <code>a-z</code> 的小写字母。</li> <li><code>p</code> 可能为空,且只包含从 <code>a-z</code> 的小写字母,以及字符 <code>.</code> 和 <code>*
</code>
。
</li>
<li>
保证每次出现字符
<code>
*
</code>
时,前面都匹配到有效的字符
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/6.leetcode-动态规划/5.5-最长回文子串/solution.md
浏览文件 @
93c81596
# 最长回文子串
<p>
给你一个字符串
<code>
s
</code>
,找到
<code>
s
</code>
中最长的回文子串。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "babad"
<strong><br
/>
输出:
</strong>
"bab"
<strong><br
/>
解释:
</strong>
"aba" 同样是符合题意的答案。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "cbbd"
<strong><br
/>
输出:
</strong>
"bb"
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "a"
<strong><br
/>
输出:
</strong>
"a"
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
s = "ac"
<strong><br
/>
输出:
</strong>
"a"
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
<=
1000</
code
></li>
<li><code>
s
</code>
仅由数字和英文字母(大写和/或小写)组成
</li></ul>
<p>
给你一个字符串
<code>
s
</code>
,找到
<code>
s
</code>
中最长的回文子串。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
s = "babad"
<strong><br
/>
输出:
</strong>
"bab"
<strong><br
/>
解释:
</strong>
"aba" 同样是符合题意的答案。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
s = "cbbd"
<strong><br
/>
输出:
</strong>
"bb"
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
s = "a"
<strong><br
/>
输出:
</strong>
"a"
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
s = "ac"
<strong><br
/>
输出:
</strong>
"a"
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
s.length
<=
1000</
code
></li>
<li><code>
s
</code>
仅由数字和英文字母(大写和/或小写)组成
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/6.leetcode-动态规划/6.53-最大子序和/solution.md
浏览文件 @
93c81596
# 最大子序和
<p>
给定一个整数数组
<code>
nums
</code>
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [-2,1,-3,4,-1,2,1,-5,4]
<strong><br
/>
输出:
</strong>
6
<strong><br
/>
解释:
</strong>
连续子数组 [4,-1,2,1] 的和最大,为 6 。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [1]
<strong><br
/>
输出:
</strong>
1
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
0
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
nums = [-1]
<strong><br
/>
输出:
</strong>
-1
</pre><p><strong>
示例 5:
</strong></p><pre><strong>
输入:
</strong>
nums = [-100000]
<strong><br
/>
输出:
</strong>
-100000
</pre><p>
</p><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
3
*
10<
sup
>
4
</sup></code></li>
<li><code>
-10
<sup>
5
</sup>
<
=
nums
[
i
]
<=
10<
sup
>
5
</sup></code></li></ul><p>
</p
><p><strong>
进阶:
</strong>
如果你已经实现复杂度为
<code>
O(n)
</code>
的解法,尝试使用更为精妙的
<strong>
分治法
</strong>
求解。
</p>
<p>
给定一个整数数组
<code>
nums
</code>
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [-2,1,-3,4,-1,2,1,-5,4]
<strong><br
/>
输出:
</strong>
6
<strong><br
/>
解释:
</strong>
连续子数组 [4,-1,2,1] 的和最大,为 6 。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [1]
<strong><br
/>
输出:
</strong>
1
</pre><p><strong>
示例 3:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
0
</pre><p><strong>
示例 4:
</strong></p><pre><strong>
输入:
</strong>
nums = [-1]
<strong><br
/>
输出:
</strong>
-1
</pre><p><strong>
示例 5:
</strong></p><pre><strong>
输入:
</strong>
nums = [-100000]
<strong><br
/>
输出:
</strong>
-100000
</pre><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
3
*
10<
sup
>
4
</sup></code></li>
<li><code>
-10
<sup>
5
</sup>
<
=
nums
[
i
]
<=
10<
sup
>
5
</sup></code></li></ul
><p><strong>
进阶:
</strong>
如果你已经实现复杂度为
<code>
O(n)
</code>
的解法,尝试使用更为精妙的
<strong>
分治法
</strong>
求解。
</p>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/6.leetcode-动态规划/7.62-不同路径/solution.md
浏览文件 @
93c81596
...
...
@@ -3,7 +3,7 @@
<p>
一个机器人位于一个
<code>
m x n
</code><em>
</em>
网格的左上角 (起始点在下图中标记为 “Start” )。
</p>
<p>
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
</p>
<p>
问总共有多少条不同的路径?
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
<img
src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0062.Unique%20Paths/images/robot_maze.png" />
<pre><strong>
输入:
</strong>
m = 3, n = 7
<strong><br
/>
输出:
</strong>
28
</pre>
...
...
@@ -13,7 +13,7 @@
<pre><strong>
输入:
</strong>
m = 7, n = 3
<strong><br
/>
输出:
</strong>
28
</pre>
<p><strong>
示例 4:
</strong></p>
<pre><strong>
输入:
</strong>
m = 3, n = 3
<strong><br
/>
输出:
</strong>
6
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
<ul>
<li><code>
1
<
=
m
,
n
<=
100</
code
></li>
...
...
data/3.算法高阶/6.leetcode-动态规划/8.72-编辑距离/solution.md
浏览文件 @
93c81596
# 编辑距离
<p>
给你两个单词
<code>
word1
</code>
和
<code>
word2
</code>
,请你计算出将
<code>
word1
</code>
转换成
<code>
word2
</code><em>
</em>
所使用的最少操作数 。
</p><p>
你可以对一个单词进行如下三种操作:
</p><ul>
<li>
插入一个字符
</li>
<li>
删除一个字符
</li>
<li>
替换一个字符
</li></ul><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
word1 = "horse", word2 = "ros"
<strong><br
/>
输出:
</strong>
3
<strong><br
/>
解释:
</strong>
horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
word1 = "intention", word2 = "execution"
<strong><br
/>
输出:
</strong>
5
<strong><br
/>
解释:
</strong>
intention -> inention (删除 't')inention -> enention (将 'i' 替换为 'e')enention -> exention (将 'n' 替换为 'x')exention -> exection (将 'n' 替换为 'c')exection -> execution (插入 'u')
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
word1.length
,
word2.length
<=
500</
code
></li>
<li><code>
word1
</code>
和
<code>
word2
</code>
由小写英文字母组成
</li></ul>
<p>
给你两个单词
<code>
word1
</code>
和
<code>
word2
</code>
,请你计算出将
<code>
word1
</code>
转换成
<code>
word2
</code><em>
</em>
所使用的最少操作数 。
</p><p>
你可以对一个单词进行如下三种操作:
</p><ul>
<li>
插入一个字符
</li>
<li>
删除一个字符
</li>
<li>
替换一个字符
</li></ul><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
word1 = "horse", word2 = "ros"
<strong><br
/>
输出:
</strong>
3
<strong><br
/>
解释:
</strong>
horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
word1 = "intention", word2 = "execution"
<strong><br
/>
输出:
</strong>
5
<strong><br
/>
解释:
</strong>
intention -> inention (删除 't')inention -> enention (将 'i' 替换为 'e')enention -> exention (将 'n' 替换为 'x')exention -> exection (将 'n' 替换为 'c')exection -> execution (插入 'u')
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
0
<
=
word1.length
,
word2.length
<=
500</
code
></li>
<li><code>
word1
</code>
和
<code>
word2
</code>
由小写英文字母组成
</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/6.leetcode-动态规划/9.85-最大矩形/solution.md
浏览文件 @
93c81596
# 最大矩形
<p>给定一个仅包含 <code>0</code> 和 <code>1</code> 、大小为 <code>rows x cols</code> 的二维二进制矩阵,找出只包含 <code>1</code> 的最大矩形,并返回其面积。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0085.Maximal%20Rectangle/images/maximal.jpg" style="width: 402px; height: 322px;" /><pre><strong>输入:</strong>matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]<strong><br />输出:</strong>6<strong><br />解释:</strong>最大矩形如上图所示。</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>matrix = []<strong><br />输出:</strong>0</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>matrix = [["0"]]<strong><br />输出:</strong>0</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>matrix = [["1"]]<strong><br />输出:</strong>1</pre><p><strong>示例 5:</strong></p><pre><strong>输入:</strong>matrix = [["0","0"]]<strong><br />输出:</strong>0</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>rows == matrix.length</code></li> <li><code>cols == matrix[0].length</code></li> <li><code>0 <= row, cols <= 200</code></li> <li><code>matrix[i][j]</code> 为 <code>'0'</code> 或 <code>'1'</code></li></ul>
<p>给定一个仅包含 <code>0</code> 和 <code>1</code> 、大小为 <code>rows x cols</code> 的二维二进制矩阵,找出只包含 <code>1</code> 的最大矩形,并返回其面积。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0085.Maximal%20Rectangle/images/maximal.jpg" style="width: 402px; height: 322px;" /><pre><strong>输入:</strong>matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]<strong><br />输出:</strong>6<strong><br />解释:</strong>最大矩形如上图所示。</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>matrix = []<strong><br />输出:</strong>0</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>matrix = [["0"]]<strong><br />输出:</strong>0</pre><p><strong>示例 4:</strong></p><pre><strong>输入:</strong>matrix = [["1"]]<strong><br />输出:</strong>1</pre><p><strong>示例 5:</strong></p><pre><strong>输入:</strong>matrix = [["0","0"]]<strong><br />输出:</strong>0</pre
><p><strong>提示:</strong></p><ul> <li><code>rows == matrix.length</code></li> <li><code>cols == matrix[0].length</code></li> <li><code>0 <= row, cols <= 200</code></li> <li><code>matrix[i][j]</code> 为 <code>'0'</code> 或 <code>'1'</code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/7.leetcode-回溯算法/10.51-N 皇后/solution.md
浏览文件 @
93c81596
# N 皇后
<p><strong>n 皇后问题</strong> 研究的是如何将 <code>n</code> 个皇后放置在 <code>n×n</code> 的棋盘上,并且使皇后彼此之间不能相互攻击。</p><p>给你一个整数 <code>n</code> ,返回所有不同的 <strong>n<em> </em>皇后问题</strong> 的解决方案。</p><div class="original__bRMd"><div><p>每一种解法包含一个不同的 <strong>n 皇后问题</strong> 的棋子放置方案,该方案中 <code>'Q'</code> 和 <code>'.'</code> 分别代表了皇后和空位。</p><p>
</p><p><strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0051.N-Queens/images/queens.jpg" style="width: 600px; height: 268px;" /><pre><strong>输入:</strong>n = 4<strong><br />输出:</strong>[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]<strong><br />解释:</strong>如上图所示,4 皇后问题存在两个不同的解法。</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>n = 1<strong><br />输出:</strong>[["Q"]]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>1 <= n <= 9</code></li> <li>皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同一条横行、纵行或斜线上。</li></ul></div></div>
<p><strong>n 皇后问题</strong> 研究的是如何将 <code>n</code> 个皇后放置在 <code>n×n</code> 的棋盘上,并且使皇后彼此之间不能相互攻击。</p><p>给你一个整数 <code>n</code> ,返回所有不同的 <strong>n<em> </em>皇后问题</strong> 的解决方案。</p><div class="original__bRMd"><div><p>每一种解法包含一个不同的 <strong>n 皇后问题</strong> 的棋子放置方案,该方案中 <code>'Q'</code> 和 <code>'.'</code> 分别代表了皇后和空位。</p><p>
<strong>示例 1:</strong></p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0051.N-Queens/images/queens.jpg" style="width: 600px; height: 268px;" /><pre><strong>输入:</strong>n = 4<strong><br />输出:</strong>[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]<strong><br />解释:</strong>如上图所示,4 皇后问题存在两个不同的解法。</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>n = 1<strong><br />输出:</strong>[["Q"]]</pre
><p><strong>提示:</strong></p><ul> <li><code>1 <= n <= 9</code></li> <li>皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同一条横行、纵行或斜线上。</li></ul></div></div>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/7.leetcode-回溯算法/3.90-子集 II/solution.md
浏览文件 @
93c81596
# 子集 II
<p>
给你一个整数数组
<code>
nums
</code>
,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
</p><p>
解集
<strong>
不能
</strong>
包含重复的子集。返回的解集中,子集可以按
<strong>
任意顺序
</strong>
排列。
</p><div
class=
"original__bRMd"
><div><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,2]
<strong><br
/>
输出:
</strong>
[[],[1],[1,2],[1,2,2],[2],[2,2]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
[[],[0]]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
10</
code
></li>
<li><code>
-10
<
=
nums
[
i
]
<=
10</
code
></li></ul></div></div>
<p>
给你一个整数数组
<code>
nums
</code>
,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
</p><p>
解集
<strong>
不能
</strong>
包含重复的子集。返回的解集中,子集可以按
<strong>
任意顺序
</strong>
排列。
</p><div
class=
"original__bRMd"
><div><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,2]
<strong><br
/>
输出:
</strong>
[[],[1],[1,2],[1,2,2],[2],[2,2]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [0]
<strong><br
/>
输出:
</strong>
[[],[0]]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
10</
code
></li>
<li><code>
-10
<
=
nums
[
i
]
<=
10</
code
></li></ul></div></div>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/7.leetcode-回溯算法/5.47-全排列 II/solution.md
浏览文件 @
93c81596
# 全排列 II
<p>
给定一个可包含重复数字的序列
<code>
nums
</code>
,
<strong>
按任意顺序
</strong>
返回所有不重复的全排列。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,1,2]
<strong><br
/>
输出:
</strong>
[[1,1,2], [1,2,1], [2,1,1]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,3]
<strong><br
/>
输出:
</strong>
[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
8</
code
></li>
<li><code>
-10
<
=
nums
[
i
]
<=
10</
code
></li></ul>
<p>
给定一个可包含重复数字的序列
<code>
nums
</code>
,
<strong>
按任意顺序
</strong>
返回所有不重复的全排列。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,1,2]
<strong><br
/>
输出:
</strong>
[[1,1,2], [1,2,1], [2,1,1]]
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [1,2,3]
<strong><br
/>
输出:
</strong>
[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
8</
code
></li>
<li><code>
-10
<
=
nums
[
i
]
<=
10</
code
></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/7.leetcode-回溯算法/6.17-电话号码的字母组合/solution.md
浏览文件 @
93c81596
# 电话号码的字母组合
<p>给定一个仅包含数字 <code>2-9</code> 的字符串,返回所有它能表示的字母组合。答案可以按 <strong>任意顺序</strong> 返回。</p><p>给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。</p><p><img src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0017.Letter%20Combinations%20of%20a%20Phone%20Number/images/17_telephone_keypad.png" style="width: 200px;" /></p><p>
</p><p><strong>示例 1:</strong></p><pre><strong>输入:</strong>digits = "23"<strong><br />输出:</strong>["ad","ae","af","bd","be","bf","cd","ce","cf"]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>digits = ""<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>digits = "2"<strong><br />输出:</strong>["a","b","c"]</pre><p> </p
><p><strong>提示:</strong></p><ul> <li><code>0 <= digits.length <= 4</code></li> <li><code>digits[i]</code> 是范围 <code>['2', '9']</code> 的一个数字。</li></ul>
<p>给定一个仅包含数字 <code>2-9</code> 的字符串,返回所有它能表示的字母组合。答案可以按 <strong>任意顺序</strong> 返回。</p><p>给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。</p><p><img src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0017.Letter%20Combinations%20of%20a%20Phone%20Number/images/17_telephone_keypad.png" style="width: 200px;" /></p><p>
<strong>示例 1:</strong></p><pre><strong>输入:</strong>digits = "23"<strong><br />输出:</strong>["ad","ae","af","bd","be","bf","cd","ce","cf"]</pre><p><strong>示例 2:</strong></p><pre><strong>输入:</strong>digits = ""<strong><br />输出:</strong>[]</pre><p><strong>示例 3:</strong></p><pre><strong>输入:</strong>digits = "2"<strong><br />输出:</strong>["a","b","c"]</pre
><p><strong>提示:</strong></p><ul> <li><code>0 <= digits.length <= 4</code></li> <li><code>digits[i]</code> 是范围 <code>['2', '9']</code> 的一个数字。</li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/8.leetcode-贪心/1.122-买卖股票的最佳时机 II/solution.md
浏览文件 @
93c81596
...
...
@@ -6,7 +6,7 @@
<p><strong>
注意:
</strong>
你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -41,7 +41,7 @@
<strong>
解释:
</strong>
在这种情况下, 没有交易完成, 所以最大利润为 0。
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/8.leetcode-贪心/4.135-分发糖果/solution.md
浏览文件 @
93c81596
...
...
@@ -11,7 +11,7 @@
<p>
那么这样下来,老师至少需要准备多少颗糖果呢?
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
data/3.算法高阶/8.leetcode-贪心/5.55-跳跃游戏/solution.md
浏览文件 @
93c81596
# 跳跃游戏
<p>
给定一个非负整数数组
<code>
nums
</code>
,你最初位于数组的
<strong>
第一个下标
</strong>
。
</p><p>
数组中的每个元素代表你在该位置可以跳跃的最大长度。
</p><p>
判断你是否能够到达最后一个下标。
</p><p>
</p><p><strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [2,3,1,1,4]
<strong><br
/>
输出:
</strong>
true
<strong><br
/>
解释:
</strong>
可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,2,1,0,4]
<strong><br
/>
输出:
</strong>
false
<strong><br
/>
解释:
</strong>
无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。
</pre><p>
</p
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
3
*
10<
sup
>
4
</sup></code></li>
<li><code>
0
<
=
nums
[
i
]
<=
10<
sup
>
5
</sup></code></li></ul>
<p>
给定一个非负整数数组
<code>
nums
</code>
,你最初位于数组的
<strong>
第一个下标
</strong>
。
</p><p>
数组中的每个元素代表你在该位置可以跳跃的最大长度。
</p><p>
判断你是否能够到达最后一个下标。
</p><p>
<strong>
示例 1:
</strong></p><pre><strong>
输入:
</strong>
nums = [2,3,1,1,4]
<strong><br
/>
输出:
</strong>
true
<strong><br
/>
解释:
</strong>
可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。
</pre><p><strong>
示例 2:
</strong></p><pre><strong>
输入:
</strong>
nums = [3,2,1,0,4]
<strong><br
/>
输出:
</strong>
false
<strong><br
/>
解释:
</strong>
无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。
</pre
><p><strong>
提示:
</strong></p><ul>
<li><code>
1
<
=
nums.length
<=
3
*
10<
sup
>
4
</sup></code></li>
<li><code>
0
<
=
nums
[
i
]
<=
10<
sup
>
5
</sup></code></li></ul>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/3.算法高阶/8.leetcode-贪心/7.179-最大数/solution.md
浏览文件 @
93c81596
...
...
@@ -4,7 +4,7 @@
<p><strong>
注意:
</strong>
输出结果可能非常大,所以你需要返回一个字符串而不是整数。
</p>
<p>
</p>
<p><strong>
示例 1:
</strong></p>
...
...
@@ -37,7 +37,7 @@
<strong>
输出:
</strong>
"10"
</pre>
<p>
</p>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/8.leetcode-贪心/8.316-去除重复字母/solution.md
浏览文件 @
93c81596
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录