Skip to content

Commit 7b69b6d

Browse files
committed
feat: add lcs/lcp problems
1 parent 9a6e4a9 commit 7b69b6d

File tree

78 files changed

+3146
-1
lines changed

Some content is hidden

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

78 files changed

+3146
-1
lines changed

index.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@
2828
name: 'leetcode',
2929
logo: '/images/doocs-leetcode.png',
3030
search: [
31-
'/', '/solution/', '/lcof/', '/lcof2/', '/lcci/', '/basic/'
31+
'/', '/solution/', '/lcof/', '/lcof2/', '/lcci/', '/lcs', 'lcp', '/basic/'
3232
],
3333
loadSidebar: 'summary.md',
3434
auto2top: true,
3535
subMaxLevel: 2,
3636
alias: {
37+
'/lcs/.*/summary.md': '/lcs/summary.md',
38+
'/lcp/.*/summary.md': '/lcp/summary.md',
3739
'/lcci/.*/summary.md': '/lcci/summary.md',
3840
'/lcof/.*/summary.md': '/lcof/summary.md',
3941
'/lcof2/.*/summary.md': '/lcof2/summary.md',

lcp/LCP 01. 猜数字/README.md

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# [LCP 01. 猜数字](https://leetcode-cn.com/problems/guess-numbers)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
<p>小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?</p>
8+
9+
<p>输入的<code>guess</code>数组为 小A 每次的猜测,<code>answer</code>数组为 小B 每次的选择。<code>guess</code>和<code>answer</code>的长度都等于3。</p>
10+
11+
<p> </p>
12+
13+
<p><strong>示例 1:</strong></p>
14+
15+
<pre>
16+
<strong>输入:</strong>guess = [1,2,3], answer = [1,2,3]
17+
<strong>输出:</strong>3
18+
<strong>解释:</strong>小A 每次都猜对了。</pre>
19+
20+
<p><strong>示例 2:</strong></p>
21+
22+
<pre>
23+
<strong>输入:</strong>guess = [2,2,3], answer = [3,2,1]
24+
<strong>输出:</strong>1
25+
<strong>解释:</strong>小A 只猜对了第二次。</pre>
26+
27+
<p> </p>
28+
29+
<p><strong>限制:</strong></p>
30+
31+
<ol>
32+
<li><code>guess</code> 的长度 = 3</li>
33+
<li><code>answer</code> 的长度 = 3</li>
34+
<li><code>guess</code> 的元素取值为 <code>{1, 2, 3}</code> 之一。</li>
35+
<li><code>answer</code> 的元素取值为 <code>{1, 2, 3}</code> 之一。</li>
36+
</ol>
37+
38+
39+
## 解法
40+
41+
<!-- 这里可写通用的实现逻辑 -->
42+
43+
<!-- tabs:start -->
44+
45+
### **Python3**
46+
47+
<!-- 这里可写当前语言的特殊实现逻辑 -->
48+
49+
```python
50+
51+
```
52+
53+
### **Java**
54+
55+
<!-- 这里可写当前语言的特殊实现逻辑 -->
56+
57+
```java
58+
59+
```
60+
61+
### **...**
62+
63+
```
64+
65+
```
66+
67+
<!-- tabs:end -->

lcp/LCP 02. 分式化简/README.md

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# [LCP 02. 分式化简](https://leetcode-cn.com/problems/deep-dark-fraction)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
<p>有一个同学在学习分式。他需要将一个连分数化成最简分数,你能帮助他吗?</p>
8+
9+
<p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2002.%20分式化简/images/fraction_example_1.jpg" style="height: 195px; width: 480px;" /></p>
10+
11+
<p>连分数是形如上图的分式。在本题中,所有系数都是大于等于0的整数。</p>
12+
13+
<p> </p>
14+
15+
<p>输入的<code>cont</code>代表连分数的系数(<code>cont[0]</code>代表上图的<code>a<sub>0</sub></code>,以此类推)。返回一个长度为2的数组<code>[n, m]</code>,使得连分数的值等于<code>n / m</code>,且<code>n, m</code>最大公约数为1。</p>
16+
17+
<p> </p>
18+
19+
<p><strong>示例 1:</strong></p>
20+
21+
<pre>
22+
<strong>输入:</strong>cont = [3, 2, 0, 2]
23+
<strong>输出:</strong>[13, 4]
24+
<strong>解释:</strong>原连分数等价于3 + (1 / (2 + (1 / (0 + 1 / 2))))。注意[26, 8], [-13, -4]都不是正确答案。</pre>
25+
26+
<p><strong>示例 2:</strong></p>
27+
28+
<pre>
29+
<strong>输入:</strong>cont = [0, 0, 3]
30+
<strong>输出:</strong>[3, 1]
31+
<strong>解释:</strong>如果答案是整数,令分母为1即可。</pre>
32+
33+
<p> </p>
34+
35+
<p><strong>限制:</strong></p>
36+
37+
<ol>
38+
<li><code>cont[i] >= 0</code></li>
39+
<li><code>1 <= cont的长度 <= 10</code></li>
40+
<li><code>cont</code>最后一个元素不等于0</li>
41+
<li>答案的<code>n, m</code>的取值都能被32位int整型存下(即不超过<code>2 ^ 31 - 1</code>)。</li>
42+
</ol>
43+
44+
45+
## 解法
46+
47+
<!-- 这里可写通用的实现逻辑 -->
48+
49+
<!-- tabs:start -->
50+
51+
### **Python3**
52+
53+
<!-- 这里可写当前语言的特殊实现逻辑 -->
54+
55+
```python
56+
57+
```
58+
59+
### **Java**
60+
61+
<!-- 这里可写当前语言的特殊实现逻辑 -->
62+
63+
```java
64+
65+
```
66+
67+
### **...**
68+
69+
```
70+
71+
```
72+
73+
<!-- tabs:end -->
Loading
+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# [LCP 03. 机器人大冒险](https://leetcode-cn.com/problems/programmable-robot)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
<p>力扣团队买了一个可编程机器人,机器人初始位置在原点<code>(0, 0)</code>。小伙伴事先给机器人输入一串指令<code>command</code>,机器人就会<strong>无限循环</strong>这条指令的步骤进行移动。指令有两种:</p>
8+
9+
<ol>
10+
<li><code>U</code>: 向<code>y</code>轴正方向移动一格</li>
11+
<li><code>R</code>: 向<code>x</code>轴正方向移动一格。</li>
12+
</ol>
13+
14+
<p>不幸的是,在 xy 平面上还有一些障碍物,他们的坐标用<code>obstacles</code>表示。机器人一旦碰到障碍物就会被<strong>损毁</strong>。</p>
15+
16+
<p>给定终点坐标<code>(x, y)</code>,返回机器人能否<strong>完好</strong>地到达终点。如果能,返回<code>true</code>;否则返回<code>false</code>。</p>
17+
18+
<p>&nbsp;</p>
19+
20+
<p><strong>示例 1:</strong></p>
21+
22+
<pre><strong>输入:</strong>command = &quot;URR&quot;, obstacles = [], x = 3, y = 2
23+
<strong>输出:</strong>true
24+
<strong>解释:</strong>U(0, 1) -&gt; R(1, 1) -&gt; R(2, 1) -&gt; U(2, 2) -&gt; R(3, 2)。</pre>
25+
26+
<p><strong>示例 2:</strong></p>
27+
28+
<pre><strong>输入:</strong>command = &quot;URR&quot;, obstacles = [[2, 2]], x = 3, y = 2
29+
<strong>输出:</strong>false
30+
<strong>解释:</strong>机器人在到达终点前会碰到(2, 2)的障碍物。</pre>
31+
32+
<p><strong>示例 3:</strong></p>
33+
34+
<pre><strong>输入:</strong>command = &quot;URR&quot;, obstacles = [[4, 2]], x = 3, y = 2
35+
<strong>输出:</strong>true
36+
<strong>解释:</strong>到达终点后,再碰到障碍物也不影响返回结果。</pre>
37+
38+
<p>&nbsp;</p>
39+
40+
<p><strong>限制:</strong></p>
41+
42+
<ol>
43+
<li><code>2 &lt;= command的长度 &lt;= 1000</code></li>
44+
<li><code>command</code>由<code>U,R</code>构成,且至少有一个<code>U</code>,至少有一个<code>R</code></li>
45+
<li><code>0 &lt;= x &lt;= 1e9, 0 &lt;= y &lt;= 1e9</code></li>
46+
<li><code>0 &lt;= obstacles的长度 &lt;= 1000</code></li>
47+
<li><code>obstacles[i]</code>不为原点或者终点</li>
48+
</ol>
49+
50+
51+
## 解法
52+
53+
<!-- 这里可写通用的实现逻辑 -->
54+
55+
<!-- tabs:start -->
56+
57+
### **Python3**
58+
59+
<!-- 这里可写当前语言的特殊实现逻辑 -->
60+
61+
```python
62+
63+
```
64+
65+
### **Java**
66+
67+
<!-- 这里可写当前语言的特殊实现逻辑 -->
68+
69+
```java
70+
71+
```
72+
73+
### **...**
74+
75+
```
76+
77+
```
78+
79+
<!-- tabs:end -->

lcp/LCP 04. 覆盖/README.md

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# [LCP 04. 覆盖](https://leetcode-cn.com/problems/broken-board-dominoes)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
<p>你有一块棋盘,棋盘上有一些格子已经坏掉了。你还有无穷块大小为<code>1 * 2</code>的多米诺骨牌,你想把这些骨牌<strong>不重叠</strong>地覆盖在<strong>完好</strong>的格子上,请找出你最多能在棋盘上放多少块骨牌?这些骨牌可以横着或者竖着放。</p>
8+
9+
<p>&nbsp;</p>
10+
11+
<p>输入:<code>n, m</code>代表棋盘的大小;<code>broken</code>是一个<code>b * 2</code>的二维数组,其中每个元素代表棋盘上每一个坏掉的格子的位置。</p>
12+
13+
<p>输出:一个整数,代表最多能在棋盘上放的骨牌数。</p>
14+
15+
<p>&nbsp;</p>
16+
17+
<p><strong>示例 1:</strong></p>
18+
19+
<pre><strong>输入:</strong>n = 2, m = 3, broken = [[1, 0], [1, 1]]
20+
<strong>输出:</strong>2
21+
<strong>解释:</strong>我们最多可以放两块骨牌:[[0, 0], [0, 1]]以及[[0, 2], [1, 2]]。(见下图)</pre>
22+
23+
<p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2004.%20覆盖/images/domino_example_1.jpg" style="height: 204px; width: 304px;"></p>
24+
25+
<p>&nbsp;</p>
26+
27+
<p><strong>示例 2:</strong></p>
28+
29+
<pre><strong>输入:</strong>n = 3, m = 3, broken = []
30+
<strong>输出:</strong>4
31+
<strong>解释:</strong>下图是其中一种可行的摆放方式
32+
</pre>
33+
34+
<p><img alt="" src="https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2004.%20覆盖/images/domino_example_2.jpg" style="height: 304px; width: 304px;"></p>
35+
36+
<p>&nbsp;</p>
37+
38+
<p><strong>限制:</strong></p>
39+
40+
<ol>
41+
<li><code>1 &lt;= n &lt;= 8</code></li>
42+
<li><code>1 &lt;= m &lt;= 8</code></li>
43+
<li><code>0 &lt;= b &lt;= n * m</code></li>
44+
</ol>
45+
46+
47+
## 解法
48+
49+
<!-- 这里可写通用的实现逻辑 -->
50+
51+
<!-- tabs:start -->
52+
53+
### **Python3**
54+
55+
<!-- 这里可写当前语言的特殊实现逻辑 -->
56+
57+
```python
58+
59+
```
60+
61+
### **Java**
62+
63+
<!-- 这里可写当前语言的特殊实现逻辑 -->
64+
65+
```java
66+
67+
```
68+
69+
### **...**
70+
71+
```
72+
73+
```
74+
75+
<!-- tabs:end -->
9.64 KB
Loading
Loading

0 commit comments

Comments
 (0)