Skip to content

feat: add solutions to lc problems: No.2273~2275 #3550

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 15 additions & 6 deletions solution/0600-0699/0658.Find K Closest Elements/README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,21 @@ tags:

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>
<pre><strong>Input:</strong> arr = [1,2,3,4,5], k = 4, x = 3
<strong>Output:</strong> [1,2,3,4]
</pre><p><strong class="example">Example 2:</strong></p>
<pre><strong>Input:</strong> arr = [1,2,3,4,5], k = 4, x = -1
<strong>Output:</strong> [1,2,3,4]
</pre>

<div class="example-block">
<p><strong>Input:</strong> <span class="example-io">arr = [1,2,3,4,5], k = 4, x = 3</span></p>

<p><strong>Output:</strong> <span class="example-io">[1,2,3,4]</span></p>
</div>

<p><strong class="example">Example 2:</strong></p>

<div class="example-block">
<p><strong>Input:</strong> <span class="example-io">arr = [1,1,2,3,4,5], k = 4, x = -1</span></p>

<p><strong>Output:</strong> <span class="example-io">[1,1,2,3]</span></p>
</div>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

Expand Down
10 changes: 5 additions & 5 deletions solution/0600-0699/0666.Path Sum IV/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ tags:

<!-- description:start -->

<p>对于一棵深度小于&nbsp;<code>5</code>&nbsp;的树,可以用一组三位十进制整数来表示。对于每个整数:</p>
<p>对于一棵深度小于&nbsp;<code>5</code>&nbsp;的树,可以用一组三位十进制整数来表示。给定一个由三位数组成的&nbsp;<strong>递增</strong>&nbsp;的数组&nbsp;<code>nums</code>&nbsp;表示一棵深度小于&nbsp;<code>5</code>&nbsp;的二叉树,对于每个整数:</p>

<ul>
<li>百位上的数字表示这个节点的深度 <code>d</code>,<code>1 &lt;= d&nbsp;&lt;= 4</code>。</li>
<li>十位上的数字表示这个节点在当前层所在的位置 <code>P</code>, <code>1 &lt;= p&nbsp;&lt;= 8</code>。位置编号与一棵满二叉树的位置编号相同。</li>
<li>十位上的数字表示这个节点在当前层所在的位置 <code>p</code>, <code>1 &lt;= p&nbsp;&lt;= 8</code>。位置编号与一棵 <strong>满二叉树</strong> 的位置编号相同。</li>
<li>个位上的数字表示这个节点的权值 <code>v</code>,<code>0 &lt;= v&nbsp;&lt;= 9</code>。</li>
</ul>

<p>给定一个包含三位整数的&nbsp;<strong>升序&nbsp;</strong>数组&nbsp;<code>nums</code>&nbsp;,表示一棵深度小于 <code>5</code> 的二叉树,请你返回 <em>从根到所有叶子结点的路径之和&nbsp;</em>。</p>
<p>返回从&nbsp;<strong>&nbsp;</strong>到所有 <strong>叶子结点</strong> 的 <strong>路径</strong> 之 <strong>和</strong>。</p>

<p><strong>保证&nbsp;</strong>给定的数组表示一个有效的连接二叉树。</p>

Expand All @@ -42,7 +42,7 @@ tags:
<strong>输入:</strong> nums = [113, 215, 221]
<strong>输出:</strong> 12
<strong>解释:</strong> 列表所表示的树如上所示。
路径和 = (3 + 5) + (3 + 1) = 12.
路径和 = (3 + 5) + (3 + 1) = 12
</pre>

<p><strong>示例 2:</strong></p>
Expand All @@ -53,7 +53,7 @@ tags:
<strong>输入:</strong> nums = [113, 221]
<strong>输出:</strong> 4
<strong>解释:</strong> 列表所表示的树如上所示。
路径和 = (3 + 1) = 4.
路径和 = (3 + 1) = 4
</pre>

<p>&nbsp;</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ difficulty: 中等
edit_url: https://github.com/doocs/leetcode/edit/main/solution/0700-0799/0713.Subarray%20Product%20Less%20Than%20K/README.md
tags:
- 数组
- 二分查找
- 前缀和
- 滑动窗口
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ difficulty: Medium
edit_url: https://github.com/doocs/leetcode/edit/main/solution/0700-0799/0713.Subarray%20Product%20Less%20Than%20K/README_EN.md
tags:
- Array
- Binary Search
- Prefix Sum
- Sliding Window
---

Expand Down
37 changes: 23 additions & 14 deletions solution/0700-0799/0733.Flood Fill/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,33 +19,42 @@ tags:

<!-- description:start -->

<p>有一幅以&nbsp;<code>m x n</code>&nbsp;的二维整数数组表示的图画&nbsp;<code>image</code>&nbsp;,其中&nbsp;<code>image[i][j]</code>&nbsp;表示该图画的像素值大小。</p>
<p>有一幅以&nbsp;<code>m x n</code>&nbsp;的二维整数数组表示的图画&nbsp;<code>image</code>&nbsp;,其中&nbsp;<code>image[i][j]</code>&nbsp;表示该图画的像素值大小。你也被给予三个整数 <code>sr</code> ,&nbsp; <code>sc</code> 和 <code>color</code> 。你应该从像素&nbsp;<code>image[sr][sc]</code>&nbsp;开始对图像进行上色&nbsp;<strong>填充</strong> 。</p>

<p>你也被给予三个整数 <code>sr</code> ,&nbsp; <code>sc</code> 和 <code>color</code> 。你应该从像素&nbsp;<code>image[sr][sc]</code>&nbsp;开始对图像进行 上色<strong>填充</strong></p>
<p>为了完成 <strong>上色工作</strong></p>

<p>为了完成 <strong>上色工作</strong>,从初始像素开始,记录初始坐标的 <strong>上下左右四个方向上</strong> 相邻且同色的像素点,接着再记录与这些像素点相邻且同色的新像素点,……,重复该过程。将所有有记录的像素点的颜色值改为 <code>color</code>。</p>
<ol>
<li>从初始像素开始,将其颜色改为 <code>color</code>。</li>
<li>对初始坐标的 <strong>上下左右四个方向上</strong> 相邻且与初始像素的原始颜色同色的像素点执行相同操作。</li>
<li>通过检查与初始像素的原始颜色相同的相邻像素并修改其颜色来继续 <strong>重复</strong> 此过程。</li>
<li>当 <strong>没有</strong> 其它原始颜色的相邻像素时 <strong>停止</strong> 操作。</li>
</ol>

<p>最后返回 <em>经过上色渲染后的图像&nbsp;</em>。</p>
<p>最后返回经过上色渲染&nbsp;<strong>修改</strong> 后的图像&nbsp;。</p>

<p>&nbsp;</p>

<p><strong>示例 1:</strong></p>

<p><img src="https://fastly.jsdelivr.net/gh/doocs/leetcode@main/solution/0700-0799/0733.Flood%20Fill/images/flood1-grid.jpg" /></p>

<pre>
<strong>输入:</strong> image = [[1,1,1],[1,1,0],[1,0,1]],sr = 1, sc = 1, color = 2
<strong>输出:</strong> [[2,2,2],[2,2,0],[2,0,1]]
<strong>解析:</strong> 在图像的正中间,(坐标(sr,sc)=(1,1)),在路径上所有符合条件的像素点的颜色都被更改成2。
注意,右下角的像素没有更改为2,因为它不是在上下左右四个方向上与初始点相连的像素点。
</pre>
<div class="example-block"><strong>输入:</strong>image = [[1,1,1],[1,1,0],[1,0,1]],sr = 1, sc = 1, color = 2</div>

<div class="example-block"><strong>输出:</strong>[[2,2,2],[2,2,0],[2,0,1]]</div>

<div class="example-block"><b>解释:</b>在图像的正中间,坐标 <code>(sr,sc)=(1,1)</code>&nbsp;(即红色像素),在路径上所有符合条件的像素点的颜色都被更改成相同的新颜色(即蓝色像素)。</div>

<div class="example-block">注意,右下角的像素 <strong>没有</strong> 更改为2,因为它不是在上下左右四个方向上与初始点相连的像素点。</div>

<div class="example-block">&nbsp;</div>

<p><strong>示例 2:</strong></p>

<pre>
<strong>输入:</strong> image = [[0,0,0],[0,0,0]], sr = 0, sc = 0, color = 0
<strong>输出:</strong> [[0,0,0],[0,0,0]]
</pre>
<div class="example-block"><strong>输入:</strong>image = [[0,0,0],[0,0,0]], sr = 0, sc = 0, color = 0</div>

<div class="example-block"><strong>输出:</strong>[[0,0,0],[0,0,0]]</div>

<div class="example-block"><strong>解释:</strong>初始像素已经用 0 着色,这与目标颜色相同。因此,不会对图像进行任何更改。</div>

<p>&nbsp;</p>

Expand Down
54 changes: 31 additions & 23 deletions solution/1800-1899/1813.Sentence Similarity III/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,49 +20,57 @@ tags:

<!-- description:start -->

<p>一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格。比方说,<code>"Hello World"</code> ,<code>"HELLO"</code> ,<code>"hello world hello world"</code> 都是句子。每个单词都 <strong></strong> 包含大写和小写英文字母。</p>
<p>给定两个字符串&nbsp;<code>sentence1</code>&nbsp;和&nbsp;<code>sentence2</code>,每个表示由一些单词组成的一个句子。句子是一系列由&nbsp;<strong>单个 </strong>空格分隔的&nbsp;<strong>单词</strong>,且开头和结尾没有多余空格。每个单词都只包含大写和小写英文字母。</p>

<p>如果两个句子 <code>sentence1</code> 和 <code>sentence2</code> ,可以通过往其中一个句子插入一个任意的句子(<strong>可以是空句子</strong>)而得到另一个句子,那么我们称这两个句子是 <strong>相似的</strong> 。比方说,<code>sentence1 = "Hello my name is Jane"</code> 且 <code>sentence2 = "Hello Jane"</code> ,我们可以往 <code>sentence2</code> 中 <code>"Hello"</code> 和 <code>"Jane"</code> 之间插入 <code>"my name is"</code> 得到 <code>sentence1</code> 。</p>
<p>如果两个句子&nbsp;<code>s1</code>&nbsp;和&nbsp;<code>s2</code>&nbsp;,可以通过往其中一个句子插入一个任意的句子(可以是空句子)而得到另一个句子,那么我们称这两个句子是 <strong>相似的</strong>&nbsp;。<strong>注意</strong>,插入的句子必须与现有单词用空白隔开。&nbsp;</p>

<p>给你两个句子 <code>sentence1</code> 和 <code>sentence2</code> ,如果<em> </em><code>sentence1</code> 和<em> </em><code>sentence2</code> 是相似的,请你返回 <code>true</code> ,否则返回 <code>false</code> 。</p>
<p>比方说,</p>

<p> </p>
<ul>
<li><code>s1 = "Hello Jane"</code> 与&nbsp;<code>s2 = "Hello my name is Jane"</code>,我们可以往 <code>s1</code>&nbsp;中&nbsp;<code>"Hello"</code> 和&nbsp;<code>"Jane"</code>&nbsp;之间插入&nbsp;<code>"my name is"</code>&nbsp;得到 <code>s2</code>&nbsp;。</li>
<li><code>s1 = "Frog cool"</code>&nbsp;与 <code>s2 = "Frogs are cool"</code>&nbsp;不是相似的,因为尽管往&nbsp;<code>s1</code>&nbsp;中插入&nbsp;<code>"s are"</code>,它没有与&nbsp;<code>"Frog"</code>&nbsp;用空格隔开。</li>
</ul>

<p>给你两个句子&nbsp;<code>sentence1</code> 和&nbsp;<code>sentence2</code>&nbsp;,如果<em>&nbsp;</em><code>sentence1</code> 和<em>&nbsp;</em><code>sentence2</code> 是 <strong>相似</strong> 的,请你返回&nbsp;<code>true</code>&nbsp;,否则返回&nbsp;<code>false</code>&nbsp;。</p>

<p>&nbsp;</p>

<p><strong>示例 1:</strong></p>

<pre><b>输入:</b>sentence1 = "My name is Haley", sentence2 = "My Haley"
<b>输出:</b>true
<b>解释:</b>可以往 sentence2 中 "My" 和 "Haley" 之间插入 "name is" ,得到 sentence1 。
</pre>
<div class="example-block"><b>输入:</b>sentence1 = "My name is Haley", sentence2 = "My Haley"</div>

<div class="example-block"><b>输出:</b>true</div>

<div class="example-block"><b>解释:</b>可以往 <code>sentence2</code> 中 "My" 和 "Haley" 之间插入 "name is" ,得到 <code>sentence1</code> 。</div>

<div class="example-block">&nbsp;</div>

<p><strong>示例 2:</strong></p>

<pre><b>输入:</b>sentence1 = "of", sentence2 = "A lot of words"
<b>输出:</b>false
<strong>解释:</strong>没法往这两个句子中的一个句子只插入一个句子就得到另一个句子。
</pre>
<div class="example-block"><b>输入:</b>sentence1 = "of", sentence2 = "A lot of words"</div>

<div class="example-block"><b>输出:</b>false</div>

<div class="example-block"><strong>解释:</strong>没法往这两个句子中的一个句子只插入一个句子就得到另一个句子。</div>

<div class="example-block">&nbsp;</div>

<p><strong>示例 3:</strong></p>

<pre><b>输入:</b>sentence1 = "Eating right now", sentence2 = "Eating"
<b>输出:</b>true
<b>解释:</b>可以往 sentence2 的结尾插入 "right now" 得到 sentence1 。
</pre>
<div class="example-block"><b>输入:</b>sentence1 = "Eating right now", sentence2 = "Eating"</div>

<p><strong>示例 4:</strong></p>
<div class="example-block"><b>输出:</b>true</div>

<pre><b>输入:</b>sentence1 = "Luky", sentence2 = "Lucccky"
<b>输出:</b>false
</pre>
<div class="example-block"><b>解释:</b>可以往 <code>sentence2</code> 的结尾插入 "right now" 得到 <code>sentence1</code> 。</div>

<p> </p>
<p>&nbsp;</p>

<p><strong>提示:</strong></p>

<ul>
<li><code>1 &lt;= sentence1.length, sentence2.length &lt;= 100</code></li>
<li><code>sentence1</code> 和 <code>sentence2</code> 都只包含大小写英文字母和空格。</li>
<li><code>sentence1</code> 和 <code>sentence2</code> 中的单词都只由单个空格隔开。</li>
<li><code>sentence1</code>&nbsp;和&nbsp;<code>sentence2</code>&nbsp;都只包含大小写英文字母和空格。</li>
<li><code>sentence1</code>&nbsp;和&nbsp;<code>sentence2</code>&nbsp;中的单词都只由单个空格隔开。</li>
</ul>

<!-- description:end -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,13 @@ tags:

<!-- description:start -->

<p>给你一个由小写字母组成的字符串 <code>s</code> ,以及一个整数 <code>k</code> 。</p>
<p>给你一个由小写字母组成的字符串 <code>s</code> ,以及一个整数 <code>k</code> 。你的任务是通过一种特殊处理将字符串转为整数,然后通过重复对它的数位求和&nbsp;<code>k</code> 次来进行转换。更具体地说,执行以下步骤:</p>

<p>首先,用字母在字母表中的位置替换该字母,将 <code>s</code> <strong>转化</strong> 为一个整数(也就是,<code>'a'</code> 用 <code>1</code> 替换,<code>'b'</code> 用 <code>2</code> 替换,... <code>'z'</code> 用 <code>26</code> 替换)。接着,将整数 <strong>转换</strong> 为其 <strong>各位数字之和</strong> 。共重复 <strong>转换</strong> 操作 <strong><code>k</code> 次</strong> 。</p>
<ol>
<li>用字母在字母表中的位置&nbsp;<strong>替换&nbsp;</strong>该字母,将 <code>s</code> <strong>转化</strong> 为一个整数(也就是,<code>'a'</code> 用 <code>1</code> 替换,<code>'b'</code> 用 <code>2</code> 替换,... <code>'z'</code> 用 <code>26</code> 替换)。</li>
<li>接着,将整数 <strong>转换</strong> 为其 <strong>各位数字之和</strong> 。</li>
<li>共重复 <strong>转换</strong> 操作(第 2 步)&nbsp;<code>k</code><strong> 次</strong> 。</li>
</ol>

<p>例如,如果 <code>s = "zbax"</code> 且 <code>k = 2</code> ,那么执行下述步骤后得到的结果是整数 <code>8</code> :</p>

Expand All @@ -31,32 +35,56 @@ tags:
<li><strong>转换 #2</strong>:<code>17 ➝ 1 + 7 ➝ 8</code></li>
</ul>

<p>返回执行上述操作后得到的结果整数。</p>
<p>返回执行上述 <strong>操作</strong> 后得到的 <strong>结果整数</strong>。</p>

<p>&nbsp;</p>

<p><strong>示例 1:</strong></p>

<pre>
<strong>输入:</strong>s = "iiii", k = 1
<strong>输出:</strong>36
<strong>解释:</strong>操作如下:
- 转化:"iiii" ➝ "(9)(9)(9)(9)" ➝ "9999" ➝ 9999
- 转换 #1:9999 ➝ 9 + 9 + 9 + 9 ➝ 36
因此,结果整数为 36 。
</pre>
<div class="example-block"><strong>输入:</strong>s = "iiii", k = 1</div>

<div class="example-block"><strong>输出:</strong>36</div>

<div class="example-block"><strong>解释:</strong></div>

<div class="example-block">操作如下:</div>

<ul>
<li class="example-block">转化:"iiii" ➝ "(9)(9)(9)(9)" ➝ "9999" ➝ 9999</li>
<li class="example-block">转换 #1:9999 ➝ 9 + 9 + 9 + 9 ➝ 36</li>
</ul>

<div class="example-block">因此,结果整数为 36 。</div>

<div class="example-block">&nbsp;</div>

<p><strong>示例 2:</strong></p>

<pre>
<strong>输入:</strong>s = "leetcode", k = 2
<strong>输出:</strong>6
<strong>解释:</strong>操作如下:
- 转化:"leetcode" ➝ "(12)(5)(5)(20)(3)(15)(4)(5)" ➝ "12552031545" ➝ 12552031545
- 转换 #1:12552031545 ➝ 1 + 2 + 5 + 5 + 2 + 0 + 3 + 1 + 5 + 4 + 5 ➝ 33
- 转换 #2:33 ➝ 3 + 3 ➝ 6
因此,结果整数为 6 。
</pre>
<div class="example-block"><strong>输入:</strong>s = "leetcode", k = 2</div>

<div class="example-block"><strong>输出:</strong>6</div>

<div class="example-block"><strong>解释:</strong></div>

<div class="example-block">操作如下:</div>

<ul>
<li class="example-block">转化:"leetcode" ➝ "(12)(5)(5)(20)(3)(15)(4)(5)" ➝ "12552031545" ➝ 12552031545</li>
<li class="example-block">转换 #1:12552031545 ➝ 1 + 2 + 5 + 5 + 2 + 0 + 3 + 1 + 5 + 4 + 5 ➝ 33</li>
<li class="example-block">转换 #2:33 ➝ 3 + 3 ➝ 6</li>
</ul>

<p class="example-block">因此,结果整数为 6 。</p>

<p class="example-block">&nbsp;</p>

<p><strong class="example">示例 3:</strong></p>

<div class="example-block">
<p><strong>输入:</strong><span class="example-io">s = "zbax", k = 2</span></p>

<p><span class="example-io"><b>输出:</b>8</span></p>
</div>

<p>&nbsp;</p>

Expand Down
Loading
Loading