Skip to content

Commit bb0875e

Browse files
authored
Merge branch 'doocs:main' into main
2 parents 3d35c3c + 52f89c8 commit bb0875e

File tree

122 files changed

+36665
-30856
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+36665
-30856
lines changed

images/starcharts.svg

Lines changed: 30500 additions & 30400 deletions
Loading

solution/0500-0599/0599.Minimum Index Sum of Two Lists/README.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@ tags:
1818

1919
<!-- description:start -->
2020

21-
<p>假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。</p>
21+
<p>给定两个字符串数组&nbsp;<code>list1</code> 和 <code>list2</code>,找到 <strong>索引和最小的公共字符串</strong>。</p>
2222

23-
<p>你需要帮助他们用<strong>最少的索引和</strong>找出他们<strong>共同喜爱的餐厅</strong>。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设答案总是存在。</p>
23+
<p><strong>公共字符串</strong>&nbsp;是同时出现在&nbsp;<code>list1</code> 和 <code>list2</code>&nbsp;中的字符串。</p>
24+
25+
<p>具有 <strong>最小索引和的公共字符串</strong> 是指,如果它在 <code>list1[i]</code> 和 <code>list2[j]</code> 中出现,那么 <code>i + j</code> 应该是所有其他 <strong>公共字符串</strong> 中的最小值。</p>
26+
27+
<p>返回所有 <strong>具有最小索引和的公共字符串</strong>。以 <strong>任何顺序</strong> 返回答案。</p>
2428

2529
<p>&nbsp;</p>
2630

@@ -29,17 +33,28 @@ tags:
2933
<pre>
3034
<strong>输入: </strong>list1 = ["Shogun", "Tapioca Express", "Burger King", "KFC"],list2 = ["Piatti", "The Grill at Torrey Pines", "Hungry Hunter Steakhouse", "Shogun"]
3135
<strong>输出:</strong> ["Shogun"]
32-
<strong>解释:</strong> 他们唯一共同喜爱的餐厅是“Shogun”。
36+
<strong>解释:</strong> 唯一的公共字符串是 “Shogun”。
3337
</pre>
3438

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

3741
<pre>
3842
<strong>输入:</strong>list1 = ["Shogun", "Tapioca Express", "Burger King", "KFC"],list2 = ["KFC", "Shogun", "Burger King"]
3943
<strong>输出:</strong> ["Shogun"]
40-
<strong>解释:</strong> 他们共同喜爱且具有最小索引和的餐厅是“Shogun”,它有最小的索引和1(0+1)
44+
<strong>解释:</strong> 具有最小索引和的公共字符串是 “Shogun”,它有最小的索引和 = (0 + 1) = 1
4145
</pre>
4246

47+
<p><strong>示例 3:</strong></p>
48+
49+
<pre>
50+
<strong>输入:</strong>list1 = ["happy","sad","good"], list2 = ["sad","happy","good"]
51+
<b>输出:</b>["sad","happy"]
52+
<b>解释:</b>有三个公共字符串:
53+
"happy" 索引和 = (0 + 1) = 1.
54+
"sad" 索引和 = (1 + 0) = 1.
55+
"good" 索引和 = (2 + 2) = 4.
56+
最小索引和的字符串是 "sad" 和 "happy"。</pre>
57+
4358
<p>&nbsp;</p>
4459

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

solution/0700-0799/0790.Domino and Tromino Tiling/README.md

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ tags:
8686

8787
注意,过程中的状态数值可能会很大,因此需要对 $10^9+7$ 取模。
8888

89-
时间复杂度 $O(n)$,空间复杂度 $O(1)$。其中 $n$ 为面板的列数
89+
时间复杂度 $O(n)$,其中 $n$ 为面板的列数。空间复杂度 $O(1)$。
9090

9191
<!-- tabs:start -->
9292

@@ -132,12 +132,11 @@ class Solution {
132132
```cpp
133133
class Solution {
134134
public:
135-
const int mod = 1e9 + 7;
136-
137135
int numTilings(int n) {
138-
long f[4] = {1, 0, 0, 0};
136+
const int mod = 1e9 + 7;
137+
long long f[4] = {1, 0, 0, 0};
139138
for (int i = 1; i <= n; ++i) {
140-
long g[4] = {0, 0, 0, 0};
139+
long long g[4];
141140
g[0] = (f[0] + f[1] + f[2] + f[3]) % mod;
142141
g[1] = (f[2] + f[3]) % mod;
143142
g[2] = (f[1] + f[3]) % mod;
@@ -168,6 +167,46 @@ func numTilings(n int) int {
168167
}
169168
```
170169

170+
#### TypeScript
171+
172+
```ts
173+
function numTilings(n: number): number {
174+
const mod = 1_000_000_007;
175+
let f: number[] = [1, 0, 0, 0];
176+
177+
for (let i = 1; i <= n; ++i) {
178+
const g: number[] = Array(4);
179+
g[0] = (f[0] + f[1] + f[2] + f[3]) % mod;
180+
g[1] = (f[2] + f[3]) % mod;
181+
g[2] = (f[1] + f[3]) % mod;
182+
g[3] = f[0] % mod;
183+
f = g;
184+
}
185+
186+
return f[0];
187+
}
188+
```
189+
190+
#### Rust
191+
192+
```rust
193+
impl Solution {
194+
pub fn num_tilings(n: i32) -> i32 {
195+
const MOD: i64 = 1_000_000_007;
196+
let mut f: [i64; 4] = [1, 0, 0, 0];
197+
for _ in 1..=n {
198+
let mut g = [0i64; 4];
199+
g[0] = (f[0] + f[1] + f[2] + f[3]) % MOD;
200+
g[1] = (f[2] + f[3]) % MOD;
201+
g[2] = (f[1] + f[3]) % MOD;
202+
g[3] = f[0] % MOD;
203+
f = g;
204+
}
205+
f[0] as i32
206+
}
207+
}
208+
```
209+
171210
<!-- tabs:end -->
172211

173212
<!-- solution:end -->

solution/0700-0799/0790.Domino and Tromino Tiling/README_EN.md

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,11 @@ class Solution {
126126
```cpp
127127
class Solution {
128128
public:
129-
const int mod = 1e9 + 7;
130-
131129
int numTilings(int n) {
132-
long f[4] = {1, 0, 0, 0};
130+
const int mod = 1e9 + 7;
131+
long long f[4] = {1, 0, 0, 0};
133132
for (int i = 1; i <= n; ++i) {
134-
long g[4] = {0, 0, 0, 0};
133+
long long g[4];
135134
g[0] = (f[0] + f[1] + f[2] + f[3]) % mod;
136135
g[1] = (f[2] + f[3]) % mod;
137136
g[2] = (f[1] + f[3]) % mod;
@@ -162,6 +161,46 @@ func numTilings(n int) int {
162161
}
163162
```
164163

164+
#### TypeScript
165+
166+
```ts
167+
function numTilings(n: number): number {
168+
const mod = 1_000_000_007;
169+
let f: number[] = [1, 0, 0, 0];
170+
171+
for (let i = 1; i <= n; ++i) {
172+
const g: number[] = Array(4);
173+
g[0] = (f[0] + f[1] + f[2] + f[3]) % mod;
174+
g[1] = (f[2] + f[3]) % mod;
175+
g[2] = (f[1] + f[3]) % mod;
176+
g[3] = f[0] % mod;
177+
f = g;
178+
}
179+
180+
return f[0];
181+
}
182+
```
183+
184+
#### Rust
185+
186+
```rust
187+
impl Solution {
188+
pub fn num_tilings(n: i32) -> i32 {
189+
const MOD: i64 = 1_000_000_007;
190+
let mut f: [i64; 4] = [1, 0, 0, 0];
191+
for _ in 1..=n {
192+
let mut g = [0i64; 4];
193+
g[0] = (f[0] + f[1] + f[2] + f[3]) % MOD;
194+
g[1] = (f[2] + f[3]) % MOD;
195+
g[2] = (f[1] + f[3]) % MOD;
196+
g[3] = f[0] % MOD;
197+
f = g;
198+
}
199+
f[0] as i32
200+
}
201+
}
202+
```
203+
165204
<!-- tabs:end -->
166205

167206
<!-- solution:end -->

solution/0700-0799/0790.Domino and Tromino Tiling/Solution.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
class Solution {
22
public:
3-
const int mod = 1e9 + 7;
4-
53
int numTilings(int n) {
6-
long f[4] = {1, 0, 0, 0};
4+
const int mod = 1e9 + 7;
5+
long long f[4] = {1, 0, 0, 0};
76
for (int i = 1; i <= n; ++i) {
8-
long g[4] = {0, 0, 0, 0};
7+
long long g[4];
98
g[0] = (f[0] + f[1] + f[2] + f[3]) % mod;
109
g[1] = (f[2] + f[3]) % mod;
1110
g[2] = (f[1] + f[3]) % mod;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
impl Solution {
2+
pub fn num_tilings(n: i32) -> i32 {
3+
const MOD: i64 = 1_000_000_007;
4+
let mut f: [i64; 4] = [1, 0, 0, 0];
5+
for _ in 1..=n {
6+
let mut g = [0i64; 4];
7+
g[0] = (f[0] + f[1] + f[2] + f[3]) % MOD;
8+
g[1] = (f[2] + f[3]) % MOD;
9+
g[2] = (f[1] + f[3]) % MOD;
10+
g[3] = f[0] % MOD;
11+
f = g;
12+
}
13+
f[0] as i32
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
function numTilings(n: number): number {
2+
const mod = 1_000_000_007;
3+
let f: number[] = [1, 0, 0, 0];
4+
5+
for (let i = 1; i <= n; ++i) {
6+
const g: number[] = Array(4);
7+
g[0] = (f[0] + f[1] + f[2] + f[3]) % mod;
8+
g[1] = (f[2] + f[3]) % mod;
9+
g[2] = (f[1] + f[3]) % mod;
10+
g[3] = f[0] % mod;
11+
f = g;
12+
}
13+
14+
return f[0];
15+
}

solution/0800-0899/0819.Most Common Word/README_EN.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ tags:
2323

2424
<p>The words in <code>paragraph</code> are <strong>case-insensitive</strong> and the answer should be returned in <strong>lowercase</strong>.</p>
2525

26+
<p><strong>Note</strong> that words can not contain punctuation symbols.</p>
27+
2628
<p>&nbsp;</p>
2729
<p><strong class="example">Example 1:</strong></p>
2830

solution/0800-0899/0838.Push Dominoes/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ tags:
2929
<p>给你一个字符串 <code>dominoes</code> 表示这一行多米诺骨牌的初始状态,其中:</p>
3030

3131
<ul>
32-
<li><code>dominoes[i] = 'L'</code>,表示第 <code>i</code> 张多米诺骨牌被推向左侧,</li>
33-
<li><code>dominoes[i] = 'R'</code>,表示第 <code>i</code> 张多米诺骨牌被推向右侧,</li>
34-
<li><code>dominoes[i] = '.'</code>,表示没有推动第 <code>i</code> 张多米诺骨牌。</li>
32+
<li><code>dominoes[i] = 'L'</code>,表示第 <code>i</code> 张多米诺骨牌被推向左侧,</li>
33+
<li><code>dominoes[i] = 'R'</code>,表示第 <code>i</code> 张多米诺骨牌被推向右侧,</li>
34+
<li><code>dominoes[i] = '.'</code>,表示没有推动第 <code>i</code> 张多米诺骨牌。</li>
3535
</ul>
3636

3737
<p>返回表示最终状态的字符串。</p>
@@ -57,9 +57,9 @@ tags:
5757
<p><strong>提示:</strong></p>
5858

5959
<ul>
60-
<li><code>n == dominoes.length</code></li>
61-
<li><code>1 &lt;= n &lt;= 10<sup>5</sup></code></li>
62-
<li><code>dominoes[i]</code> 为 <code>'L'</code>、<code>'R'</code> 或 <code>'.'</code></li>
60+
<li><code>n == dominoes.length</code></li>
61+
<li><code>1 &lt;= n &lt;= 10<sup>5</sup></code></li>
62+
<li><code>dominoes[i]</code> 为 <code>'L'</code>、<code>'R'</code> 或 <code>'.'</code></li>
6363
</ul>
6464

6565
<!-- description:end -->

solution/0800-0899/0838.Push Dominoes/README_EN.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ tags:
2929
<p>You are given a string <code>dominoes</code> representing the initial state where:</p>
3030

3131
<ul>
32-
<li><code>dominoes[i] = &#39;L&#39;</code>, if the <code>i<sup>th</sup></code> domino has been pushed to the left,</li>
33-
<li><code>dominoes[i] = &#39;R&#39;</code>, if the <code>i<sup>th</sup></code> domino has been pushed to the right, and</li>
34-
<li><code>dominoes[i] = &#39;.&#39;</code>, if the <code>i<sup>th</sup></code> domino has not been pushed.</li>
32+
<li><code>dominoes[i] = &#39;L&#39;</code>, if the <code>i<sup>th</sup></code> domino has been pushed to the left,</li>
33+
<li><code>dominoes[i] = &#39;R&#39;</code>, if the <code>i<sup>th</sup></code> domino has been pushed to the right, and</li>
34+
<li><code>dominoes[i] = &#39;.&#39;</code>, if the <code>i<sup>th</sup></code> domino has not been pushed.</li>
3535
</ul>
3636

3737
<p>Return <em>a string representing the final state</em>.</p>
@@ -56,9 +56,9 @@ tags:
5656
<p><strong>Constraints:</strong></p>
5757

5858
<ul>
59-
<li><code>n == dominoes.length</code></li>
60-
<li><code>1 &lt;= n &lt;= 10<sup>5</sup></code></li>
61-
<li><code>dominoes[i]</code> is either <code>&#39;L&#39;</code>, <code>&#39;R&#39;</code>, or <code>&#39;.&#39;</code>.</li>
59+
<li><code>n == dominoes.length</code></li>
60+
<li><code>1 &lt;= n &lt;= 10<sup>5</sup></code></li>
61+
<li><code>dominoes[i]</code> is either <code>&#39;L&#39;</code>, <code>&#39;R&#39;</code>, or <code>&#39;.&#39;</code>.</li>
6262
</ul>
6363

6464
<!-- description:end -->

0 commit comments

Comments
 (0)