Skip to content

Commit 6d75c7f

Browse files
committed
feat: update lc problems
1 parent 40eb2e4 commit 6d75c7f

File tree

34 files changed

+1198
-864
lines changed

34 files changed

+1198
-864
lines changed

.github/workflows/chatgpt-cr.yml

-20
This file was deleted.

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@
1010
/lcof/lcof_list.json
1111
/lcci/lcci.json
1212
/solution/__pycache__
13+
/solution/.env
1314
*.iml

lcp/main.py

+1-1
Large diffs are not rendered by default.

solution/0300-0399/0336.Palindrome Pairs/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
<strong>输出:</strong>[[0,1],[1,0]]
3333
</pre>
3434

35+
36+
3537
<p><strong>提示:</strong></p>
3638

3739
<ul>

solution/0400-0499/0424.Longest Repeating Character Replacement/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
<strong>解释:</strong>
2929
将中间的一个'A'替换为'B',字符串变为 "AABBBBA"。
3030
子串 "BBBB" 有最长重复字母, 答案为 4。
31+
可能存在其他的方法来得到同样的结果。
3132
</pre>
3233

3334
<p>&nbsp;</p>

solution/0500-0599/0554.Brick Wall/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
<strong>输出:</strong>3
2929
</pre>
3030

31+
32+
3133
<p><strong>提示:</strong></p>
3234

3335
<ul>

solution/0600-0699/0629.K Inverse Pairs Array/README.md

+18-15
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,38 @@
66

77
<!-- 这里写题目描述 -->
88

9-
<p>给出两个整数&nbsp;<code>n</code>&nbsp;&nbsp;<code>k</code>,找出所有包含从&nbsp;<code>1</code>&nbsp;&nbsp;<code>n</code>&nbsp;的数字,且恰好拥有&nbsp;<code>k</code>&nbsp;个逆序对的不同的数组的个数。</p>
9+
<p>逆序对的定义如下:对于数组 <code>nums</code> 的第 <code>i</code> 个和第 <code>j</code> 个元素,如果满足 <code>0 &lt;= i &lt; j &lt; nums.length</code>&nbsp;<code>nums[i] &gt; nums[j]</code>,则其为一个逆序对;否则不是。</p>
1010

11-
<p>逆序对的定义如下:对于数组的第<code>i</code>个和第&nbsp;<code>j</code>个元素,如果满<code>i</code>&nbsp;&lt;&nbsp;<code>j</code>&nbsp;<code>a[i]</code>&nbsp;&gt;&nbsp;<code>a[j]</code>,则其为一个逆序对;否则不是。</p>
11+
<p>给你两个整数&nbsp;<code>n</code>&nbsp;&nbsp;<code>k</code>,找出所有包含从&nbsp;<code>1</code>&nbsp;&nbsp;<code>n</code>&nbsp;的数字,且恰好拥有&nbsp;<code>k</code>&nbsp;个 <strong>逆序对</strong> 的不同的数组的个数。由于答案可能很大,只需要返回对 <code>10<sup>9</sup>&nbsp;+ 7</code> 取余的结果。</p>
1212

13-
<p>由于答案可能很大,只需要返回 答案 mod 10<sup>9</sup>&nbsp;+ 7 的值。</p>
13+
<p>&nbsp;</p>
1414

15-
<p><strong>示例 1:</strong></p>
15+
<p><strong>示例 1</strong></p>
1616

1717
<pre>
18-
<strong>输入:</strong> n = 3, k = 0
19-
<strong>输出:</strong> 1
20-
<strong>解释:</strong>
18+
<strong>输入</strong>n = 3, k = 0
19+
<strong>输出</strong>1
20+
<strong>解释</strong>
2121
只有数组 [1,2,3] 包含了从1到3的整数并且正好拥有 0 个逆序对。
2222
</pre>
2323

24-
<p><strong>示例 2:</strong></p>
24+
<p><strong>示例 2</strong></p>
2525

2626
<pre>
27-
<strong>输入:</strong> n = 3, k = 1
28-
<strong>输出:</strong> 2
29-
<strong>解释:</strong>
27+
<strong>输入</strong>n = 3, k = 1
28+
<strong>输出</strong>2
29+
<strong>解释</strong>
3030
数组 [1,3,2] 和 [2,1,3] 都有 1 个逆序对。
3131
</pre>
3232

33-
<p><strong>说明:</strong></p>
33+
<p>&nbsp;</p>
3434

35-
<ol>
36-
<li>&nbsp;<code>n</code>&nbsp;的范围是 [1, 1000] 并且 <code>k</code> 的范围是 [0, 1000]。</li>
37-
</ol>
35+
<p><strong>提示:</strong></p>
36+
37+
<ul>
38+
<li><code>1 &lt;= n &lt;= 1000</code></li>
39+
<li><code>0 &lt;= k &lt;= 1000</code></li>
40+
</ul>
3841

3942
## 解法
4043

solution/0600-0699/0678.Valid Parenthesis String/README.md

+27-20
Original file line numberDiff line numberDiff line change
@@ -6,42 +6,49 @@
66

77
<!-- 这里写题目描述 -->
88

9-
<p>给定一个只包含三种字符的字符串:<code>&nbsp;</code><code></code>&nbsp;和 <code>*</code>,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:</p>
9+
<p>给你一个只包含三种字符的字符串,支持的字符类型分别是 <code>'('</code><code>')'</code> 和 <code>'*'</code>。请你检验这个字符串是否为有效字符串,如果是有效字符串返回 <code>true</code> 。</p>
1010

11-
<ol>
12-
<li>任何左括号 <code>(</code>&nbsp;必须有相应的右括号 <code>)</code>。</li>
13-
<li>任何右括号 <code>)</code>&nbsp;必须有相应的左括号 <code>(</code>&nbsp;。</li>
14-
<li>左括号 <code>(</code> 必须在对应的右括号之前 <code>)</code>。</li>
15-
<li><code>*</code>&nbsp;可以被视为单个右括号 <code>)</code>&nbsp;,或单个左括号 <code>(</code>&nbsp;,或一个空字符串。</li>
11+
<p>有效字符串符合如下规则:</p>
12+
13+
<ul>
14+
<li>任何左括号 <code>'('</code>&nbsp;必须有相应的右括号 <code>')'</code>。</li>
15+
<li>任何右括号 <code>')'</code>&nbsp;必须有相应的左括号 <code>'('</code>&nbsp;。</li>
16+
<li>左括号 <code>'('</code> 必须在对应的右括号之前 <code>')'</code>。</li>
17+
<li><code>'*'</code>&nbsp;可以被视为单个右括号 <code>')'</code>&nbsp;,或单个左括号 <code>'('</code>&nbsp;,或一个空字符串。</li>
1618
<li>一个空字符串也被视为有效字符串。</li>
17-
</ol>
19+
</ul>
20+
21+
<p>&nbsp;</p>
1822

19-
<p><strong>示例 1:</strong></p>
23+
<p><strong class="example">示例 1</strong></p>
2024

2125
<pre>
22-
<strong>输入:</strong> &quot;()&quot;
23-
<strong>输出:</strong> True
26+
<strong>输入</strong>s = "()"
27+
<strong>输出</strong>true
2428
</pre>
2529

26-
<p><strong>示例 2:</strong></p>
30+
<p><strong class="example">示例 2</strong></p>
2731

2832
<pre>
29-
<strong>输入:</strong> &quot;(*)&quot;
30-
<strong>输出:</strong> True
33+
<strong>输入</strong>s = "(*)"
34+
<strong>输出</strong>true
3135
</pre>
3236

33-
<p><strong>示例 3:</strong></p>
37+
<p><strong class="example">示例 3</strong></p>
3438

3539
<pre>
36-
<strong>输入:</strong> &quot;(*))&quot;
37-
<strong>输出:</strong> True
40+
<strong>输入</strong>s = "(*))"
41+
<strong>输出</strong>true
3842
</pre>
3943

40-
<p><strong>注意:</strong></p>
44+
<p>&nbsp;</p>
45+
46+
<p><strong>提示:</strong></p>
4147

42-
<ol>
43-
<li>字符串大小将在 [1,100] 范围内。</li>
44-
</ol>
48+
<ul>
49+
<li><code>1 &lt;= s.length &lt;= 100</code></li>
50+
<li><code>s[i]</code> 为 <code>'('</code>、<code>')'</code> 或 <code>'*'</code></li>
51+
</ul>
4552

4653
## 解法
4754

solution/0700-0799/0730.Count Different Palindromic Subsequences/README.md

+5-11
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,13 @@
66

77
<!-- 这里写题目描述 -->
88

9-
<p>给定一个字符串 s,返回 <em><code>s</code>&nbsp;中不同的非空「回文子序列」个数 。</em></p>
9+
<p>给你一个字符串 <code>s</code> ,返回 <code>s</code>&nbsp;中不同的非空回文子序列个数 。由于答案可能很大,请返回对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 的结果。</p>
1010

11-
<p>通过从 s&nbsp;中删除 0 个或多个字符来获得子序列。</p>
11+
<p>字符串的子序列可以经由字符串删除 0 个或多个字符获得。</p>
1212

13-
<p>如果一个字符序列与它反转后的字符序列一致,那么它是「回文字符序列」。</p>
13+
<p>如果一个序列与它反转后的序列一致,那么它是回文序列。</p>
1414

15-
<p>如果有某个 <code>i</code> , 满足&nbsp;<code>a<sub>i</sub>&nbsp;!= b<sub>i</sub></code><sub>&nbsp;</sub>,则两个序列&nbsp;<code>a<sub>1</sub>, a<sub>2</sub>, ...</code>&nbsp;&nbsp;<code>b<sub>1</sub>, b<sub>2</sub>, ...</code>&nbsp;不同。</p>
16-
17-
<p><strong>注意:</strong></p>
18-
19-
<ul>
20-
<li>结果可能很大,你需要对&nbsp;<code>10<sup>9</sup>&nbsp;+ 7</code>&nbsp;取模 。</li>
21-
</ul>
15+
<p>如果存在某个 <code>i</code> , 满足&nbsp;<code>a<sub>i</sub>&nbsp;!= b<sub>i</sub></code><sub>&nbsp;</sub>,则两个序列&nbsp;<code>a<sub>1</sub>, a<sub>2</sub>, ...</code>&nbsp;&nbsp;<code>b<sub>1</sub>, b<sub>2</sub>, ...</code>&nbsp;不同。</p>
2216

2317
<p>&nbsp;</p>
2418

@@ -36,7 +30,7 @@
3630
<pre>
3731
<strong>输入:</strong>s = 'abcdabcdabcdabcdabcdabcdabcdabcddcbadcbadcbadcbadcbadcbadcbadcba'
3832
<strong>输出:</strong>104860361
39-
<strong>解释:</strong>共有 3104860382 个不同的非空回文子序列,104860361 10<sup>9</sup> + 7 取模后的值
33+
<strong>解释:</strong>共有 3104860382 个不同的非空回文子序列,104860361 是对 10<sup>9</sup> + 7 取余后的值
4034
</pre>
4135

4236
<p>&nbsp;</p>

solution/0900-0999/0920.Number of Music Playlists/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<li>一首歌只有在其他 <code>k</code> 首歌播放完之后才能再次播放。</li>
1414
</ul>
1515

16-
<p>返回可以满足要求的播放列表的数量。由于答案可能非常大,请返回对 <code>10^9 + 7</code> <strong>取余</strong> 的结果。</p>
16+
<p>给你 <code>n</code>、<code>goal</code> 和 <code>k</code> ,返回可以满足要求的播放列表的数量。由于答案可能非常大,请返回对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 的结果。</p>
1717
&nbsp;
1818

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

solution/1000-1099/1000.Minimum Cost to Merge Stones/README.md

+12-8
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@
66

77
<!-- 这里写题目描述 -->
88

9-
<p>有 <code>N</code> 堆石头排成一排,第 <code>i</code> 堆中有&nbsp;<code>stones[i]</code>&nbsp;块石头。</p>
9+
<p>有 <code>n</code> 堆石头排成一排,第 <code>i</code> 堆中有&nbsp;<code>stones[i]</code>&nbsp;块石头。</p>
1010

11-
<p>每次<em>移动(move)</em>需要将<strong>连续的</strong>&nbsp;<code>K</code>&nbsp;堆石头合并为一堆,而这个移动的成本为这&nbsp;<code>K</code>&nbsp;堆石头的总数。</p>
11+
<p>每次 <strong>移动</strong> 需要将 <strong>连续的</strong> <code>k</code> 堆石头合并为一堆,而这次移动的成本为这 <code>k</code> 堆中石头的总数。</p>
1212

13-
<p>找出把所有石头合并成一堆的最低成本。如果不可能,返回 <code>-1</code> 。</p>
13+
<p>返回把所有石头合并成一堆的最低成本。如果无法合并成一堆,返回 <code>-1</code> 。</p>
1414

1515
<p>&nbsp;</p>
1616

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

19-
<pre><strong>输入:</strong>stones = [3,2,4,1], K = 2
19+
<pre>
20+
<strong>输入:</strong>stones = [3,2,4,1], K = 2
2021
<strong>输出:</strong>20
2122
<strong>解释:</strong>
2223
从 [3, 2, 4, 1] 开始。
@@ -28,14 +29,16 @@
2829

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

31-
<pre><strong>输入:</strong>stones = [3,2,4,1], K = 3
32+
<pre>
33+
<strong>输入:</strong>stones = [3,2,4,1], K = 3
3234
<strong>输出:</strong>-1
3335
<strong>解释:</strong>任何合并操作后,都会剩下 2 堆,我们无法再进行合并。所以这项任务是不可能完成的。.
3436
</pre>
3537

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

38-
<pre><strong>输入:</strong>stones = [3,5,1,2,6], K = 3
40+
<pre>
41+
<strong>输入:</strong>stones = [3,5,1,2,6], K = 3
3942
<strong>输出:</strong>25
4043
<strong>解释:</strong>
4144
从 [3, 5, 1, 2, 6] 开始。
@@ -49,9 +52,10 @@
4952
<p><strong>提示:</strong></p>
5053

5154
<ul>
52-
<li><code>1 &lt;= stones.length &lt;= 30</code></li>
53-
<li><code>2 &lt;= K &lt;= 30</code></li>
55+
<li><code>n == stones.length</code></li>
56+
<li><code>1 &lt;= n &lt;= 30</code></li>
5457
<li><code>1 &lt;= stones[i] &lt;= 100</code></li>
58+
<li><code>2 &lt;= k &lt;= 30</code></li>
5559
</ul>
5660

5761
## 解法

solution/1100-1199/1130.Minimum Cost Tree From Leaf Values/README.md

+17-13
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,31 @@
99
<p>给你一个正整数数组&nbsp;<code>arr</code>,考虑所有满足以下条件的二叉树:</p>
1010

1111
<ul>
12-
<li>每个节点都有 0 个或是 2 个子节点。</li>
13-
<li>数组&nbsp;<code>arr</code>&nbsp;中的值与树的中序遍历中每个叶节点的值一一对应。(知识回顾:如果一个节点有 0 个子节点,那么该节点为叶节点。)</li>
12+
<li>每个节点都有 <code>0</code> 个或是 <code>2</code> 个子节点。</li>
13+
<li>数组&nbsp;<code>arr</code>&nbsp;中的值与树的中序遍历中每个叶节点的值一一对应。</li>
1414
<li>每个非叶节点的值等于其左子树和右子树中叶节点的最大值的乘积。</li>
1515
</ul>
1616

1717
<p>在所有这样的二叉树中,返回每个非叶节点的值的最小可能总和。这个和的值是一个&nbsp;32 位整数。</p>
1818

19-
<p>&nbsp;</p>
19+
<p>如果一个节点有 0 个子节点,那么该节点为叶节点。</p>
2020

21-
<p><strong>示例:</strong></p>
21+
<p>&nbsp;</p>
2222

23-
<pre><strong>输入:</strong>arr = [6,2,4]
23+
<p><strong>示例 1:</strong></p>
24+
<img alt="" src="https://fastly.jsdelivr.net/gh/doocs/leetcode@main/solution/1100-1199/1130.Minimum%20Cost%20Tree%20From%20Leaf%20Values/images/tree1.jpg" style="width: 500px; height: 169px;" />
25+
<pre>
26+
<strong>输入:</strong>arr = [6,2,4]
2427
<strong>输出:</strong>32
25-
<strong>解释:</strong>
26-
有两种可能的树,第一种的非叶节点的总和为 36,第二种非叶节点的总和为 32。
28+
<strong>解释:</strong>有两种可能的树,第一种的非叶节点的总和为 36 ,第二种非叶节点的总和为 32 。
29+
</pre>
2730

28-
24 24
29-
/ \ / \
30-
12 4 6 8
31-
/ \ / \
32-
6 2 2 4</pre>
31+
<p><strong>示例 2:</strong></p>
32+
<img alt="" src="https://fastly.jsdelivr.net/gh/doocs/leetcode@main/solution/1100-1199/1130.Minimum%20Cost%20Tree%20From%20Leaf%20Values/images/tree2.jpg" style="width: 224px; height: 145px;" />
33+
<pre>
34+
<strong>输入:</strong>arr = [4,11]
35+
<strong>输出:</strong>44
36+
</pre>
3337

3438
<p>&nbsp;</p>
3539

@@ -38,7 +42,7 @@
3842
<ul>
3943
<li><code>2 &lt;= arr.length &lt;= 40</code></li>
4044
<li><code>1 &lt;= arr[i] &lt;= 15</code></li>
41-
<li>答案保证是一个 32 位带符号整数,即小于&nbsp;<code>2^31</code>。</li>
45+
<li>答案保证是一个 32 位带符号整数,即小于&nbsp;<code>2<sup>31</sup></code> 。</li>
4246
</ul>
4347

4448
## 解法

solution/1100-1199/1155.Number of Dice Rolls With Target Sum/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# [1155. 掷骰子的 N 种方法](https://leetcode.cn/problems/number-of-dice-rolls-with-target-sum)
1+
# [1155. 掷骰子等于目标和的方法数](https://leetcode.cn/problems/number-of-dice-rolls-with-target-sum)
22

33
[English Version](/solution/1100-1199/1155.Number%20of%20Dice%20Rolls%20With%20Target%20Sum/README_EN.md)
44

solution/2200-2299/2288.Apply Discount to Prices/README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@
66

77
<!-- 这里写题目描述 -->
88

9-
<p><strong>句子</strong> 是由若干个单词组成的字符串,单词之间用单个空格分隔,其中每个单词可以包含数字、小写字母、和美元符号 <code>'$'</code> 。如果单词的形式为美元符号后跟着一个非负实数,那么这个单词就表示一个价格。</p>
9+
<p><strong>句子</strong> 是由若干个单词组成的字符串,单词之间用单个空格分隔,其中每个单词可以包含数字、小写字母、和美元符号 <code>'$'</code> 。如果单词的形式为美元符号后跟着一个非负实数,那么这个单词就表示一个 <strong>价格</strong> 。</p>
1010

1111
<ul>
12-
<li>例如 <code>"$100"</code>、<code>"$23"</code> 和 <code>"$6.75"</code> 表示价格,而 <code>"100"</code>、<code>"$"</code> 和 <code>"2$3"</code> 不是。</li>
12+
<li>例如 <code>"$100"</code>、<code>"$23"</code> 和 <code>"$6"</code> 表示价格,而 <code>"100"</code>、<code>"$"</code> 和 <code>"$1e5</code> 不是。</li>
1313
</ul>
1414

15-
<p><strong>注意:</strong>本题输入中的价格均为整数。</p>
16-
17-
<p>给你一个字符串 <code>sentence</code>&nbsp; 和一个整数 <code>discount</code> 。对于每个表示价格的单词,都在价格的基础上减免 <code>discount%</code> ,并 <strong>更新</strong> 该单词到句子中。所有更新后的价格应该表示为一个 <strong>恰好保留小数点后两位</strong> 的数字。</p>
15+
<p>给你一个字符串 <code>sentence</code> 表示一个句子和一个整数 <code>discount</code> 。对于每个表示价格的单词,都在价格的基础上减免 <code>discount%</code> ,并 <strong>更新</strong> 该单词到句子中。所有更新后的价格应该表示为一个 <strong>恰好保留小数点后两位</strong> 的数字。</p>
1816

1917
<p>返回表示修改后句子的字符串。</p>
2018

19+
<p>注意:所有价格 <strong>最多</strong> 为&nbsp; <code>10</code> 位数字。</p>
20+
2121
<p>&nbsp;</p>
2222

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

0 commit comments

Comments
 (0)