Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_algorithm
提交
b5da2434
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看板
提交
b5da2434
编写于
11月 22, 2021
作者:
每日一练社区
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add update img
上级
a2b2d0fe
变更
42
隐藏空白更改
内联
并排
Showing
42 changed file
with
55 addition
and
59 deletion
+55
-59
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-数组/12.54-螺旋矩阵/solution.md
data/2.算法中阶/1.leetcode-数组/12.54-螺旋矩阵/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.算法中阶/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-链表/9.24-两两交换链表中的节点/solution.md
data/2.算法中阶/2.leetcode-链表/9.24-两两交换链表中的节点/solution.md
+1
-1
data/2.算法中阶/3.leetcode-字符串/11.97-交错字符串/solution.md
data/2.算法中阶/3.leetcode-字符串/11.97-交错字符串/solution.md
+1
-1
data/2.算法中阶/4.leetcode-栈与队列/10.42-接雨水/solution.md
data/2.算法中阶/4.leetcode-栈与队列/10.42-接雨水/solution.md
+1
-1
data/2.算法中阶/4.leetcode-栈与队列/7.218-天际线问题/solution.md
data/2.算法中阶/4.leetcode-栈与队列/7.218-天际线问题/solution.md
+1
-1
data/2.算法中阶/4.leetcode-栈与队列/8.84-柱状图中最大的矩形/solution.md
data/2.算法中阶/4.leetcode-栈与队列/8.84-柱状图中最大的矩形/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-双指针/4.142-环形链表 II/solution.md
data/2.算法中阶/6.leetcode-双指针/4.142-环形链表 II/solution.md
+3
-3
data/2.算法中阶/6.leetcode-双指针/5.141-环形链表/solution.md
data/2.算法中阶/6.leetcode-双指针/5.141-环形链表/solution.md
+3
-3
data/2.算法中阶/6.leetcode-双指针/6.61-旋转链表/solution.md
data/2.算法中阶/6.leetcode-双指针/6.61-旋转链表/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.算法高阶/2.leetcode-哈希表/3.36-有效的数独/solution.md
data/3.算法高阶/2.leetcode-哈希表/3.36-有效的数独/solution.md
+1
-2
data/3.算法高阶/3.leetcode-图与搜索/10.130-被围绕的区域/solution.md
data/3.算法高阶/3.leetcode-图与搜索/10.130-被围绕的区域/solution.md
+1
-1
data/3.算法高阶/3.leetcode-图与搜索/2.133-克隆图/solution.md
data/3.算法高阶/3.leetcode-图与搜索/2.133-克隆图/solution.md
+3
-3
data/3.算法高阶/3.leetcode-图与搜索/3.332-重新安排行程/solution.md
data/3.算法高阶/3.leetcode-图与搜索/3.332-重新安排行程/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.算法高阶/5.leetcode-设计/10.297-二叉树的序列化与反序列化/solution.md
data/3.算法高阶/5.leetcode-设计/10.297-二叉树的序列化与反序列化/solution.md
+1
-1
data/3.算法高阶/5.leetcode-设计/6.173-二叉搜索树迭代器/solution.md
data/3.算法高阶/5.leetcode-设计/6.173-二叉搜索树迭代器/solution.md
+1
-1
data/3.算法高阶/6.leetcode-动态规划/10.63-不同路径 II/solution.md
data/3.算法高阶/6.leetcode-动态规划/10.63-不同路径 II/solution.md
+3
-6
data/3.算法高阶/6.leetcode-动态规划/2.64-最小路径和/solution.md
data/3.算法高阶/6.leetcode-动态规划/2.64-最小路径和/solution.md
+1
-1
data/3.算法高阶/6.leetcode-动态规划/7.62-不同路径/solution.md
data/3.算法高阶/6.leetcode-动态规划/7.62-不同路径/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-回溯算法/6.17-电话号码的字母组合/solution.md
data/3.算法高阶/7.leetcode-回溯算法/6.17-电话号码的字母组合/solution.md
+1
-1
data/3.算法高阶/7.leetcode-回溯算法/9.37-解数独/solution.md
data/3.算法高阶/7.leetcode-回溯算法/9.37-解数独/solution.md
+1
-1
未找到文件。
data/2.算法中阶/1.leetcode-数组/1.59-螺旋矩阵 II/solution.md
浏览文件 @
b5da2434
# 螺旋矩阵 II
<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>
给你一个正整数
<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://
img-blog.csdnimg.cn/img_convert/b2086bc4a6e47ebbf922fed2e817b298.png#pic_center
"
/><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
浏览文件 @
b5da2434
# 旋转图像
<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>
给定一个
<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://
img-blog.csdnimg.cn/img_convert/9a815a9eeb64d633de1bcd8d864f069d.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/5f637f84287da51eb330d2128bfb306f.png#pic_center
" /><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-数组/12.54-螺旋矩阵/solution.md
浏览文件 @
b5da2434
# 螺旋矩阵
<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>
给你一个
<code>
m
</code>
行
<code>
n
</code>
列的矩阵
<code>
matrix
</code>
,请按照
<strong>
顺时针螺旋顺序
</strong>
,返回矩阵中的所有元素。
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/0d476dcc094b85563f4f43c393ef1425.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/1c83ff2d8f7cc194b08715bacdedff99.png#pic_center
" /><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-数组/15.73-矩阵置零/solution.md
浏览文件 @
b5da2434
# 矩阵置零
<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>
给定一个
<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://
img-blog.csdnimg.cn/img_convert/a9dfa884d1a855d6630087aa890a20f8.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/816bcf700b7a5b0c1b118f9aaac5bb58.png#pic_center
" /><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
浏览文件 @
b5da2434
# 搜索二维矩阵
<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>
编写一个高效的算法来判断
<code>
m x n
</code>
矩阵中,是否存在一个目标值。该矩阵具有如下特性:
</p><ul>
<li>
每行中的整数从左到右按升序排列。
</li>
<li>
每行的第一个整数大于前一行的最后一个整数。
</li></ul><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/eb4ca0d861f87843d6d732b4525b0acc.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/f22033e9dda21437197f5e414c912a3d.png#pic_center
" /><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.算法中阶/2.leetcode-链表/1.82-删除排序链表中的重复元素 II/solution.md
浏览文件 @
b5da2434
# 删除排序链表中的重复元素 II
<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>
存在一个按升序排列的链表,给你这个链表的头节点
<code>
head
</code>
,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中
<strong>
没有重复出现
</strong><em>
</em>
的数字。
</p><p>
返回同样按升序排列的结果链表。
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/5b9243e41528c71944e0f9436d8c249f.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/f43c3f1fdb51738ae73ac8543c9b4e9b.png#pic_center
"
/><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
浏览文件 @
b5da2434
# 合并两个有序链表
<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>
将两个升序链表合并为一个新的
<strong>
升序
</strong>
链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/4c4b9ef8c8206165cf198a972bcd6088.png#pic_center
"
/><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
浏览文件 @
b5da2434
# 删除链表的倒数第 N 个结点
<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>
给你一个链表,删除链表的倒数第
<code>
n
</code><em>
</em>
个结点,并且返回链表的头结点。
</p><p><strong>
进阶:
</strong>
你能尝试使用一趟扫描实现吗?
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/3ab1d7132da7283b4578c8df78c8fb67.png#pic_center
"
/><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
浏览文件 @
b5da2434
# 删除排序链表中的重复元素
<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>
存在一个按升序排列的链表,给你这个链表的头节点
<code>
head
</code>
,请你删除所有重复的元素,使每个元素
<strong>
只出现一次
</strong>
。
</p><p>
返回同样按升序排列的结果链表。
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/b6eba8ba59536dfb80d2f593a68a3f5f.png#pic_center"
/><pre><strong>
输入:
</strong>
head = [1,1,2]
<strong><br
/>
输出:
</strong>
[1,2]
</pre><p><strong>
示例 2:
</strong></p><img
alt=
""
src=
"https://img-blog.csdnimg.cn/img_convert/0141f292aa8d31b92eab3049dc01b485.png#pic_center
"
/><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
浏览文件 @
b5da2434
# 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><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://
img-blog.csdnimg.cn/img_convert/73746d9eacbf48526f3aa7f3051d929a.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/202a5b66c99b0dba832f105fae9a47ce.png#pic_center
"
/><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
浏览文件 @
b5da2434
# 分隔链表
<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>
给你一个链表的头节点
<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://
img-blog.csdnimg.cn/img_convert/54f1177fe2cc4fddce6e1a5553659bee.png#pic_center
"
/><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
浏览文件 @
b5da2434
# 反转链表 II
给你单链表的头指针
<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>
给你单链表的头指针
<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://
img-blog.csdnimg.cn/img_convert/c664df96e99b9097662307d2e0368322.png#pic_center
"
/><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-链表/9.24-两两交换链表中的节点/solution.md
浏览文件 @
b5da2434
# 两两交换链表中的节点
<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>
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
</p><p><strong>
你不能只是单纯的改变节点内部的值
</strong>
,而是需要实际的进行节点交换。
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/88da15e3bf83dfb0c4784dc6700e84bc.png#pic_center
"
/><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-字符串/11.97-交错字符串/solution.md
浏览文件 @
b5da2434
# 交错字符串
<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>
给定三个字符串
<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://
img-blog.csdnimg.cn/img_convert/d01d6f6906b7777c9823a97e68b77d06.png#pic_center
"
/><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.算法中阶/4.leetcode-栈与队列/10.42-接雨水/solution.md
浏览文件 @
b5da2434
# 接雨水
<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>
给定
<em>
n
</em>
个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
</p><p><strong>
示例 1:
</strong></p><p><img
src=
"https://
img-blog.csdnimg.cn/img_convert/eb3d1efe3faa6dfe31363f4009af2a48.png#pic_center
"
/></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-栈与队列/7.218-天际线问题/solution.md
浏览文件 @
b5da2434
...
...
@@ -17,7 +17,7 @@
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2020/12/01/merged.jpg"
style=
"width: 800px; height: 331px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/9e262d6191741087234d501132cd7cd7.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
buildings = [[2,9,10],[3,7,15],[5,12,12],[15,20,10],[19,24,8]]
...
...
data/2.算法中阶/4.leetcode-栈与队列/8.84-柱状图中最大的矩形/solution.md
浏览文件 @
b5da2434
# 柱状图中最大的矩形
<p>给定 <em>n</em> 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。</p><p>求在该柱状图中,能够勾勒出来的矩形的最大面积。</p><p> </p><p><img src="https://
cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0084.Largest%20Rectangle%20in%20Histogram/images/histogram.png"></p><p><small>以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 <code>[2,1,5,6,2,3]</code>。</small></p><p> </p><p><img src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0084.Largest%20Rectangle%20in%20Histogram/images/histogram_area.png
"></p><p><small>图中阴影部分为所能勾勒出的最大矩形面积,其面积为 <code>10</code> 个单位。</small></p><p> </p><p><strong>示例:</strong></p><pre><strong>输入:</strong> [2,1,5,6,2,3]<strong><br />输出:</strong> 10</pre>
<p>
给定
<em>
n
</em>
个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。
</p><p>
求在该柱状图中,能够勾勒出来的矩形的最大面积。
</p><p>
</p><p><img
src=
"https://
img-blog.csdnimg.cn/img_convert/947ba982417b598ee8de378ac4b1c2bf.png#pic_center"
></p><p><small>
以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为
<code>
[2,1,5,6,2,3]
</code>
。
</small></p><p>
</p><p><img
src=
"https://img-blog.csdnimg.cn/img_convert/2873fce06be97533e2bc5b5384510f67.png#pic_center
"
></p><p><small>
图中阴影部分为所能勾勒出的最大矩形面积,其面积为
<code>
10
</code>
个单位。
</small></p><p>
</p><p><strong>
示例:
</strong></p><pre><strong>
输入:
</strong>
[2,1,5,6,2,3]
<strong><br
/>
输出:
</strong>
10
</pre>
<p>
以下
<span
style=
"color:red"
>
错误
</span>
的选项是?
</p>
## aop
...
...
data/2.算法中阶/6.leetcode-双指针/2.11-盛最多水的容器/solution.md
浏览文件 @
b5da2434
# 盛最多水的容器
<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>
给你
<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://
img-blog.csdnimg.cn/img_convert/68b73af992268f52fa1d1edf7891fcc2.png#pic_center
"
/></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-双指针/4.142-环形链表 II/solution.md
浏览文件 @
b5da2434
...
...
@@ -16,7 +16,7 @@
<p><strong>
示例 1:
</strong></p>
<p><img
src=
"https://
assets.leetcode-cn.com/aliyun-lc-upload/uploads/2018/12/07/circularlinkedlist.png"
style=
"height: 97px; width: 300px;
"
/></p>
<p><img
src=
"https://
img-blog.csdnimg.cn/img_convert/4a18acda10c1606aa5d1132b9de26d61.png#pic_center
"
/></p>
<pre>
<strong>
输入:
</strong>
head = [3,2,0,-4], pos = 1
...
...
@@ -28,7 +28,7 @@
<p><strong>
示例 2:
</strong></p>
<p><img
src=
"https://
assets.leetcode-cn.com/aliyun-lc-upload/uploads/2018/12/07/circularlinkedlist_test2.png"
style=
"height: 74px; width: 141px;
"
/></p>
<p><img
src=
"https://
img-blog.csdnimg.cn/img_convert/1a6fcfc68d7340c39151075f7fa53150.png#pic_center
"
/></p>
<pre>
<strong>
输入:
</strong>
head = [1,2], pos = 0
...
...
@@ -40,7 +40,7 @@
<p><strong>
示例 3:
</strong></p>
<p><img
alt=
""
src=
"https://
assets.leetcode-cn.com/aliyun-lc-upload/uploads/2018/12/07/circularlinkedlist_test3.png"
style=
"height: 45px; width: 45px;
"
/></p>
<p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/3039274e08a9385ea77b20a81060ed40.png#pic_center
"
/></p>
<pre>
<strong>
输入:
</strong>
head = [1], pos = -1
...
...
data/2.算法中阶/6.leetcode-双指针/5.141-环形链表/solution.md
浏览文件 @
b5da2434
...
...
@@ -16,7 +16,7 @@
<p><strong>
示例 1:
</strong></p>
<p><img
alt=
""
src=
"https://
assets.leetcode-cn.com/aliyun-lc-upload/uploads/2018/12/07/circularlinkedlist.png"
style=
"height: 97px; width: 300px;
"
></p>
<p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/4a18acda10c1606aa5d1132b9de26d61.png#pic_center
"
></p>
<pre><strong>
输入:
</strong>
head = [3,2,0,-4], pos = 1
...
...
@@ -27,7 +27,7 @@
<p><strong>
示例
2:
</strong></p>
<p><img
alt=
""
src=
"https://
assets.leetcode-cn.com/aliyun-lc-upload/uploads/2018/12/07/circularlinkedlist_test2.png"
style=
"height: 74px; width: 141px;
"
></p>
<p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/1a6fcfc68d7340c39151075f7fa53150.png#pic_center
"
></p>
<pre><strong>
输入:
</strong>
head = [1,2], pos = 0
...
...
@@ -38,7 +38,7 @@
<p><strong>
示例 3:
</strong></p>
<p><img
alt=
""
src=
"https://
assets.leetcode-cn.com/aliyun-lc-upload/uploads/2018/12/07/circularlinkedlist_test3.png"
style=
"height: 45px; width: 45px;
"
></p>
<p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/3039274e08a9385ea77b20a81060ed40.png#pic_center
"
></p>
<pre><strong>
输入:
</strong>
head = [1], pos = -1
...
...
data/2.算法中阶/6.leetcode-双指针/6.61-旋转链表/solution.md
浏览文件 @
b5da2434
# 旋转链表
<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>
给你一个链表的头节点
<code>
head
</code>
,旋转链表,将链表每个节点向右移动
<code>
k
</code><em>
</em>
个位置。
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/c0d8ae472058ab78d44488d3d18b7d34.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/b36376b20ad1074341ffc8bca9a32eca.png#pic_center
"
/><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/3.算法高阶/1.leetcode-树/2.100-相同的树/solution.md
浏览文件 @
b5da2434
# 相同的树
<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>
给你两棵二叉树的根节点
<code>
p
</code>
和
<code>
q
</code>
,编写一个函数来检验这两棵树是否相同。
</p><p>
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/f57f91797d38f7989b2840df0af56f12.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/3cd39cd15154d94a0916631a1bb0af62.png#pic_center"
/><pre><strong>
输入:
</strong>
p = [1,2], q = [1,null,2]
<strong><br
/>
输出:
</strong>
false
</pre><p><strong>
示例 3:
</strong></p><img
alt=
""
src=
"https://img-blog.csdnimg.cn/img_convert/ec8eb306b8b154439c9322477d9b13bf.png#pic_center
"
/><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
浏览文件 @
b5da2434
...
...
@@ -9,7 +9,7 @@
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2020/10/13/exx1.jpg"
style=
"width: 322px; height: 182px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/ca0d0d9f728f2aeda1976de9b08940e5.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
root = [1,2,3]
...
...
@@ -18,7 +18,7 @@
<strong>
解释:
</strong>
最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6
</pre>
<p><strong>
示例 2:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2020/10/13/exx2.jpg
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/730fd58fb57c0fbc6d5f77b18e9d6b50.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
root = [-10,9,20,null,null,15,7]
...
...
data/3.算法高阶/1.leetcode-树/6.99-恢复二叉搜索树/solution.md
浏览文件 @
b5da2434
# 恢复二叉搜索树
<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>
给你二叉搜索树的根节点
<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://
img-blog.csdnimg.cn/img_convert/ec4e4b2849cccb75be04428664afb2fc.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/c039bf633cb8b3bfbb70a26e931a4f53.png#pic_center
"
/><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
浏览文件 @
b5da2434
# 二叉树的中序遍历
<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>
给定一个二叉树的根节点
<code>
root
</code>
,返回它的
<strong>
中序
</strong>
遍历。
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/7f372b0f54f87384cc6c732b3cddc585.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/31457a9f9368167556ffe0b6327ebc98.png#pic_center"
/><pre><strong>
输入:
</strong>
root = [1,2]
<strong><br
/>
输出:
</strong>
[2,1]
</pre><p><strong>
示例 5:
</strong></p><img
alt=
""
src=
"https://img-blog.csdnimg.cn/img_convert/5a5703522184390ad83f06fad6566364.png#pic_center
"
/><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.算法高阶/2.leetcode-哈希表/3.36-有效的数独/solution.md
浏览文件 @
b5da2434
...
...
@@ -14,8 +14,7 @@
</ul>
<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" />
src="https://img-blog.csdnimg.cn/img_convert/8aed54207b4871a01fb402d8d21a128b.png#pic_center" />
<strong>
输入:
</strong>
```
...
...
data/3.算法高阶/3.leetcode-图与搜索/10.130-被围绕的区域/solution.md
浏览文件 @
b5da2434
...
...
@@ -6,7 +6,7 @@
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2021/02/19/xogrid.jpg"
style=
"width: 550px; height: 237px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/5a3a22bfad68fd1d22012a0ee48ec665.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
board = [["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]]
...
...
data/3.算法高阶/3.leetcode-图与搜索/2.133-克隆图/solution.md
浏览文件 @
b5da2434
...
...
@@ -25,7 +25,7 @@ class Node {
<p><strong>
示例 1:
</strong></p>
<p><img
src=
"https://
userblink.csdnimg.cn/20211118/qq_44193969/pic/434512b7eb8802e7512af498807cb598-0.png?x-oss-process=image/interlace,1/format,jpg/resize,w_375
"
></p>
<p><img
src=
"https://
img-blog.csdnimg.cn/img_convert/3528e2c15fe231421ea46ecba65284bc.png#pic_center
"
></p>
<pre><strong>
输入:
</strong>
adjList = [[2,4],[1,3],[2,4],[1,3]]
...
...
@@ -43,7 +43,7 @@ class Node {
<p><strong>
示例 2:
</strong></p>
<p><img
src=
"https://
userblink.csdnimg.cn/20211118/qq_44193969/pic/65284a62c04d197acd304f80bc6c19e4-2.png?x-oss-process=image/interlace,1/format,jpg/resize,w_375
"
></p>
<p><img
src=
"https://
img-blog.csdnimg.cn/img_convert/0fc63b9e18e5fc3478ee5dd39dd2cb67.png#pic_center
"
></p>
<pre><strong>
输入:
</strong>
adjList = [[]]
...
...
@@ -64,7 +64,7 @@ class Node {
<p><strong>
示例 4:
</strong></p>
<p><img
src=
"https://
userblink.csdnimg.cn/20211118/qq_44193969/pic/e45056991ce619cf0a6d3b6b1d6bf623-1.png?x-oss-process=image/interlace,1/format,jpg/resize,w_375
"
></p>
<p><img
src=
"https://
img-blog.csdnimg.cn/img_convert/66c930ca7557210e3fec87d30c791662.png#pic_center
"
></p>
<pre><strong>
输入:
</strong>
adjList = [[2],[1]]
...
...
data/3.算法高阶/3.leetcode-图与搜索/3.332-重新安排行程/solution.md
浏览文件 @
b5da2434
...
...
@@ -13,7 +13,7 @@
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2021/03/14/itinerary1-graph.jpg"
style=
"width: 382px; height: 222px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/d27795b8048350330fbf0beca65c3f41.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
tickets = [["MUC","LHR"],["JFK","MUC"],["SFO","SJC"],["LHR","SFO"]]
...
...
@@ -22,7 +22,7 @@
<p><strong>
示例 2:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2021/03/14/itinerary2-graph.jpg"
style=
"width: 222px; height: 230px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/c44a28217edd49aba63e72abcba06879.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
tickets = [["JFK","SFO"],["JFK","ATL"],["SFO","ATL"],["ATL","JFK"],["ATL","SFO"]]
...
...
data/3.算法高阶/3.leetcode-图与搜索/5.329-矩阵中的最长递增路径/solution.md
浏览文件 @
b5da2434
...
...
@@ -7,7 +7,7 @@
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2021/01/05/grid1.jpg"
style=
"width: 242px; height: 242px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/d436ea72ef06c6038b50f729e3e23740.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
matrix = [[9,9,4],[6,6,8],[2,1,1]]
...
...
@@ -16,7 +16,7 @@
<strong>
解释:
</strong>
最长递增路径为
<code>
[1, 2, 6, 9]
</code>
。
</pre>
<p><strong>
示例 2:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2021/01/27/tmp-grid.jpg"
style=
"width: 253px; height: 253px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/d467675b15c40a7cab7b64937f413672.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
matrix = [[3,4,5],[3,2,6],[2,2,1]]
...
...
data/3.算法高阶/3.leetcode-图与搜索/7.79-单词搜索/solution.md
浏览文件 @
b5da2434
# 单词搜索
<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>
给定一个
<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://
img-blog.csdnimg.cn/img_convert/d41f067a92645388770d389f5e4d7269.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/56b7681c631f1e73b77fe9a7475033ea.png#pic_center"
/><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://img-blog.csdnimg.cn/img_convert/58c1e99e8c54dfb7496d44f2d05c8e96.png#pic_center
"
/><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
浏览文件 @
b5da2434
...
...
@@ -7,7 +7,7 @@
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2021/01/18/pathsum1.jpg"
style=
"width: 500px; height: 356px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/ef95371d9da7672aade4dc505260cc30.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
...
...
@@ -15,7 +15,7 @@
</pre>
<p><strong>
示例 2:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2021/01/18/pathsum2.jpg
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/9bc801134935f549d425954a120f1cc3.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
root = [1,2,3], targetSum = 5
...
...
data/3.算法高阶/3.leetcode-图与搜索/9.113-路径总和 II/solution.md
浏览文件 @
b5da2434
...
...
@@ -9,7 +9,7 @@
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2021/01/18/pathsumii1.jpg"
style=
"width: 500px; height: 356px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/abdc6911d9d9ee1b12dcdbb1945a1ab2.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
...
...
@@ -17,7 +17,7 @@
</pre>
<p><strong>
示例 2:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2021/01/18/pathsum2.jpg"
style=
"width: 212px; height: 181px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/9bc801134935f549d425954a120f1cc3.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
root = [1,2,3], targetSum = 5
...
...
data/3.算法高阶/5.leetcode-设计/10.297-二叉树的序列化与反序列化/solution.md
浏览文件 @
b5da2434
...
...
@@ -9,7 +9,7 @@
<p><strong>
示例 1:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2020/09/15/serdeser.jpg"
style=
"width: 442px; height: 324px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/9387977615b7e602406be82d7d4452b9.png#pic_center
"
/>
<pre>
<strong>
输入:
</strong>
root = [1,2,3,null,null,4,5]
...
...
data/3.算法高阶/5.leetcode-设计/6.173-二叉搜索树迭代器/solution.md
浏览文件 @
b5da2434
...
...
@@ -17,7 +17,7 @@
<p><strong>
示例:
</strong></p>
<img
alt=
""
src=
"https://
assets.leetcode.com/uploads/2018/12/25/bst-tree.png"
style=
"width: 189px; height: 178px;
"
/>
<img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/743f55b78d358ff4ba5fbb7d8088a0d9.png#pic_center
"
/>
<strong>
输入
</strong>
...
...
data/3.算法高阶/6.leetcode-动态规划/10.63-不同路径 II/solution.md
浏览文件 @
b5da2434
...
...
@@ -3,17 +3,14 @@
<p>
一个机器人位于一个
<em>
m x n
</em>
网格的左上角 (起始点在下图中标记为“Start” )。
</p>
<p>
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
</p>
<p>
现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?
</p>
<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><img
src=
"https://img-blog.csdnimg.cn/img_convert/dcc604a2757b6fd0e6bdc5155c945ffc.png#pic_center"
/></p>
<p>
网格中的障碍物和空位置分别用
<code>
1
</code>
和
<code>
0
</code>
来表示。
</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;" />
src="https://img-blog.csdnimg.cn/img_convert/d127c16fad8048e19db6f2a2bea73240.png#pic_center" />
<pre><strong>
输入:
</strong>
obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
<strong><br
/>
输出:
</strong>
2
<strong><br
/>
解释:
</strong>
3x3 网格的正中间有一个障碍物。从左上角到右下角一共有 2 条不同的路径:
<br
/>
1. 向右 -> 向右 -> 向下 -> 向下
<br
/>
2. 向下 -> 向下 -> 向右 -> 向右
</pre>
<p><strong>
示例 2:
</strong></p>
<img alt=""
src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0063.Unique%20Paths%20II/images/robot2.jpg"
style="width: 162px; height: 162px;" />
src="https://img-blog.csdnimg.cn/img_convert/d95382b3c9b30e83be3e383421106a67.png#pic_center" />
<pre><strong>
输入:
</strong>
obstacleGrid = [[0,1],[0,0]]
<strong><br
/>
输出:
</strong>
1
</pre>
<p><strong>
提示:
</strong></p>
...
...
data/3.算法高阶/6.leetcode-动态规划/2.64-最小路径和/solution.md
浏览文件 @
b5da2434
# 最小路径和
<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>
给定一个包含非负整数的
<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://
img-blog.csdnimg.cn/img_convert/0c6d9496445c66b255a406ba2f9a3eb9.png#pic_center
"
/><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-动态规划/7.62-不同路径/solution.md
浏览文件 @
b5da2434
...
...
@@ -5,7 +5,7 @@
<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
" />
src="https://
img-blog.csdnimg.cn/img_convert/099169dc43ebe3d42afb948803f38eda.png#pic_center
" />
<pre><strong>
输入:
</strong>
m = 3, n = 7
<strong><br
/>
输出:
</strong>
28
</pre>
<p><strong>
示例 2:
</strong></p>
<pre><strong>
输入:
</strong>
m = 3, n = 2
<strong><br
/>
输出:
</strong>
3
<strong><br
/>
解释:
</strong>
从左上角开始,总共有 3 条路径可以到达右下角。
<br
/>
1. 向右 -> 向下 -> 向下
<br
/>
2. 向下 -> 向下 -> 向右
<br
/>
3. 向下 -> 向右 -> 向下
</pre>
...
...
data/3.算法高阶/6.leetcode-动态规划/9.85-最大矩形/solution.md
浏览文件 @
b5da2434
# 最大矩形
<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>
给定一个仅包含
<code>
0
</code>
和
<code>
1
</code>
、大小为
<code>
rows x cols
</code>
的二维二进制矩阵,找出只包含
<code>
1
</code>
的最大矩形,并返回其面积。
</p><p><strong>
示例 1:
</strong></p><img
alt=
""
src=
"https://
img-blog.csdnimg.cn/img_convert/52f17607758af8beae7a87191bff1795.png#pic_center
"
/><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
浏览文件 @
b5da2434
# 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><strong>
示例 1:
</strong></p><img
src=
"https://
userblink.csdnimg.cn/20211118/qq_44193969/pic/4c1f40d494160c485c5fec6904958634-0.jpeg?x-oss-process=image/interlace,1/format,jpg/resize,w_375
"
/><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><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
src=
"https://
img-blog.csdnimg.cn/img_convert/c371f0935cb759d5aca72318a7c1440f.png#pic_center
"
/><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-回溯算法/6.17-电话号码的字母组合/solution.md
浏览文件 @
b5da2434
# 电话号码的字母组合
<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>
给定一个仅包含数字
<code>
2-9
</code>
的字符串,返回所有它能表示的字母组合。答案可以按
<strong>
任意顺序
</strong>
返回。
</p><p>
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
</p><p><img
src=
"https://
img-blog.csdnimg.cn/img_convert/71e2c27cd43a6f678c1972f865e982d0.png#pic_center
"
/></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.算法高阶/7.leetcode-回溯算法/9.37-解数独/solution.md
浏览文件 @
b5da2434
...
...
@@ -10,7 +10,7 @@
<p>
数独部分空格内已填入了数字,空白格用
<code>
'.'
</code>
表示。
</p>
<p><strong>
示例:
</strong></p>
<img
src="https://
cdn.jsdelivr.net/gh/doocs/leetcode@main/solution/0000-0099/0037.Sudoku%20Solver/images/250px-sudoku-by-l2g-20050714svg.png
" />
src="https://
img-blog.csdnimg.cn/img_convert/ed59800c64b76b1efa62aa77747f5330.png#pic_center
" />
<strong>
输入:
</strong>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录