Skip to content

Commit 08fbe66

Browse files
committed
feat: add solutions to lc problem: No.1020.Number of Enclaves
1 parent 1c9ce7c commit 08fbe66

24 files changed

+1080
-3
lines changed

lcp/LCP 39. 无人机方阵/README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# [LCP 39. 无人机方阵](https://leetcode-cn.com/problems/0jQkd0)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
在 「力扣挑战赛」 开幕式的压轴节目 「无人机方阵」中,每一架无人机展示一种灯光颜色。 无人机方阵通过两种操作进行颜色图案变换:
8+
9+
- 调整无人机的位置布局
10+
- 切换无人机展示的灯光颜色
11+
12+
给定两个大小均为 `N*M` 的二维数组 `source``target` 表示无人机方阵表演的两种颜色图案,由于无人机切换灯光颜色的耗能很大,请返回从 `source``target` 最少需要多少架无人机切换灯光颜色。
13+
14+
**注意:** 调整无人机的位置布局时无人机的位置可以随意变动。
15+
16+
**示例 1:**
17+
18+
> 输入:`source = [[1,3],[5,4]], target = [[3,1],[6,5]]`
19+
>
20+
> 输出:`1`
21+
>
22+
> 解释:
23+
> 最佳方案为
24+
> `[0,1]` 处的无人机移动至 `[0,0]` 处;
25+
> `[0,0]` 处的无人机移动至 `[0,1]` 处;
26+
> `[1,0]` 处的无人机移动至 `[1,1]` 处;
27+
> `[1,1]` 处的无人机移动至 `[1,0]` 处,其灯光颜色切换为颜色编号为 `6` 的灯光;
28+
> 因此从`source``target` 所需要的最少灯光切换次数为 1。
29+
> ![8819ccdd664e91c78cde3bba3c701986.gif](https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2039.%20无人机方阵/images/1628823765-uCDaux-8819ccdd664e91c78cde3bba3c701986.gif){:height=300px}
30+
31+
**示例 2:**
32+
33+
> 输入:`source = [[1,2,3],[3,4,5]], target = [[1,3,5],[2,3,4]]`
34+
>
35+
> 输出:`0`
36+
> 解释:
37+
> 仅需调整无人机的位置布局,便可完成图案切换。因此不需要无人机切换颜色
38+
39+
**提示:**
40+
`n == source.length == target.length`
41+
`m == source[i].length == target[i].length`
42+
`1 <= n, m <=100`
43+
`1 <= source[i][j], target[i][j] <=10^4`
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

lcp/LCP 40. 心算挑战/README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# [LCP 40. 心算挑战](https://leetcode-cn.com/problems/uOAnQW)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
「力扣挑战赛」心算项目的挑战比赛中,要求选手从 `N` 张卡牌中选出 `cnt` 张卡牌,若这 `cnt` 张卡牌数字总和为偶数,则选手成绩「有效」且得分为 `cnt` 张卡牌数字总和。
8+
给定数组 `cards``cnt`,其中 `cards[i]` 表示第 `i` 张卡牌上的数字。 请帮参赛选手计算最大的有效得分。若不存在获取有效得分的卡牌方案,则返回 0。
9+
10+
**示例 1:**
11+
12+
> 输入:`cards = [1,2,8,9], cnt = 3`
13+
>
14+
> 输出:`18`
15+
>
16+
> 解释:选择数字为 1、8、9 的这三张卡牌,此时可获得最大的有效得分 1+8+9=18。
17+
18+
**示例 2:**
19+
20+
> 输入:`cards = [3,3,1], cnt = 1`
21+
>
22+
> 输出:`0`
23+
>
24+
> 解释:不存在获取有效得分的卡牌方案。
25+
26+
**提示:**
27+
28+
- `1 <= cnt <= cards.length <= 10^5`
29+
- `1 <= cards[i] <= 1000`
30+
31+
## 解法
32+
33+
<!-- 这里可写通用的实现逻辑 -->
34+
35+
<!-- tabs:start -->
36+
37+
### **Python3**
38+
39+
<!-- 这里可写当前语言的特殊实现逻辑 -->
40+
41+
```python
42+
43+
```
44+
45+
### **Java**
46+
47+
<!-- 这里可写当前语言的特殊实现逻辑 -->
48+
49+
```java
50+
51+
```
52+
53+
### **...**
54+
55+
```
56+
57+
```
58+
59+
<!-- tabs:end -->

lcp/LCP 41. 黑白翻转棋/README.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# [LCP 41. 黑白翻转棋](https://leetcode-cn.com/problems/fHi6rV)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
`n*m` 大小的棋盘中,有黑白两种棋子,黑棋记作字母 `"X"`, 白棋记作字母 `"O"`,空余位置记作 `"."`。当落下的棋子与其他相同颜色的棋子在行、列或对角线完全包围(中间不存在空白位置)另一种颜色的棋子,则可以翻转这些棋子的颜色。
8+
9+
![1.gif](https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2041.%20黑白翻转棋/images/1630396029-eTgzpN-6da662e67368466a96d203f67bb6e793.gif){:height=170px}![2.gif](https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2041.%20黑白翻转棋/images/1630396240-nMvdcc-8e4261afe9f60e05a4f740694b439b6b.gif){:height=170px}![3.gif](https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2041.%20黑白翻转棋/images/1630396291-kEtzLL-6fcb682daeecb5c3f56eb88b23c81d33.gif){:height=170px}
10+
11+
「力扣挑战赛」黑白翻转棋项目中,将提供给选手一个未形成可翻转棋子的棋盘残局,其状态记作 `chessboard`。若下一步可放置一枚黑棋,请问选手最多能翻转多少枚白棋。
12+
13+
**注意:**
14+
15+
- 若翻转白棋成黑棋后,棋盘上仍存在可以翻转的白棋,将可以 **继续** 翻转白棋
16+
- 输入数据保证初始棋盘状态无可以翻转的棋子且存在空余位置
17+
18+
**示例 1:**
19+
20+
> 输入:`chessboard = ["....X.","....X.","XOOO..","......","......"]`
21+
>
22+
> 输出:`3`
23+
>
24+
> 解释:
25+
> 可以选择下在 `[2,4]` 处,能够翻转白方三枚棋子。
26+
27+
**示例 2:**
28+
29+
> 输入:`chessboard = [".X.",".O.","XO."]`
30+
>
31+
> 输出:`2`
32+
>
33+
> 解释:
34+
> 可以选择下在 `[2,2]` 处,能够翻转白方两枚棋子。
35+
> ![2126c1d21b1b9a9924c639d449cc6e65.gif](https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2041.%20黑白翻转棋/images/1626683255-OBtBud-2126c1d21b1b9a9924c639d449cc6e65.gif)
36+
37+
**示例 3:**
38+
39+
> 输入:`chessboard = [".......",".......",".......","X......",".O.....","..O....","....OOX"]`
40+
>
41+
> 输出:`4`
42+
>
43+
> 解释:
44+
> 可以选择下在 `[6,3]` 处,能够翻转白方四枚棋子。
45+
> ![803f2f04098b6174397d6c696f54d709.gif](https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2041.%20黑白翻转棋/images/1630393770-Puyked-803f2f04098b6174397d6c696f54d709.gif)
46+
47+
**提示:**
48+
49+
- `1 <= chessboard.length, chessboard[i].length <= 8`
50+
- `chessboard[i]` 仅包含 `"."、"O"``"X"`
51+
52+
## 解法
53+
54+
<!-- 这里可写通用的实现逻辑 -->
55+
56+
<!-- tabs:start -->
57+
58+
### **Python3**
59+
60+
<!-- 这里可写当前语言的特殊实现逻辑 -->
61+
62+
```python
63+
64+
```
65+
66+
### **Java**
67+
68+
<!-- 这里可写当前语言的特殊实现逻辑 -->
69+
70+
```java
71+
72+
```
73+
74+
### **...**
75+
76+
```
77+
78+
```
79+
80+
<!-- tabs:end -->
Loading
Loading
Loading
Loading
Loading

lcp/LCP 42. 玩具套圈/README.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# [LCP 42. 玩具套圈](https://leetcode-cn.com/problems/vFjcfV)
2+
3+
## 题目描述
4+
5+
<!-- 这里写题目描述 -->
6+
7+
「力扣挑战赛」场地外,小力组织了一个套玩具的游戏。所有的玩具摆在平地上,`toys[i]``[xi,yi,ri]` 的形式记录了第 `i` 个玩具的坐标 `(xi,yi)` 和半径 `ri`。小扣试玩了一下,他扔了若干个半径均为 `r` 的圈,`circles[j]` 记录了第 `j` 个圈的坐标 `(xj,yj)`。套圈的规则如下:
8+
9+
- 若一个玩具被某个圈完整覆盖了(即玩具的任意部分均在圈内或者圈上),则该玩具被套中。
10+
- 若一个玩具被多个圈同时套中,最终仅计算为套中一个玩具
11+
12+
请帮助小扣计算,他成功套中了多少玩具。
13+
14+
**注意:**
15+
16+
- 输入数据保证任意两个玩具的圆心不会重合,但玩具之间可能存在重叠。
17+
18+
**示例 1:**
19+
20+
> 输入:`toys = [[3,3,1],[3,2,1]], circles = [[4,3]], r = 2`
21+
>
22+
> 输出:`1`
23+
>
24+
> 解释: 如图所示,仅套中一个玩具
25+
> ![image.png](https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2042.%20玩具套圈/images/1629194140-ydKiGF-image.png)
26+
27+
**示例 2:**
28+
29+
> 输入:`toys = [[1,3,2],[4,3,1],[7,1,2]], circles = [[1,0],[3,3]], r = 4`
30+
>
31+
> 输出:`2`
32+
>
33+
> 解释: 如图所示,套中两个玩具
34+
> ![image.png](https://cdn.jsdelivr.net/gh/doocs/leetcode@main/lcp/LCP%2042.%20玩具套圈/images/1629194157-RiOAuy-image.png){:width="400px"}
35+
36+
**提示:**
37+
38+
- `1 <= toys.length <= 10^4`
39+
- `0 <= toys[i][0], toys[i][1] <= 10^9`
40+
- `1 <= circles.length <= 10^4`
41+
- `0 <= circles[i][0], circles[i][1] <= 10^9`
42+
- `1 <= toys[i][2], r <= 10`
43+
44+
## 解法
45+
46+
<!-- 这里可写通用的实现逻辑 -->
47+
48+
<!-- tabs:start -->
49+
50+
### **Python3**
51+
52+
<!-- 这里可写当前语言的特殊实现逻辑 -->
53+
54+
```python
55+
56+
```
57+
58+
### **Java**
59+
60+
<!-- 这里可写当前语言的特殊实现逻辑 -->
61+
62+
```java
63+
64+
```
65+
66+
### **...**
67+
68+
```
69+
70+
```
71+
72+
<!-- tabs:end -->

0 commit comments

Comments
 (0)