lc1958_检查操作是否合法 工作压力的代价——我们该如何减压?【TED演讲】 JuiceFS 对比 CephFS 《李光耀观天下》
Algorithm
lc1958_检查操作是否合法
思路:
很容易想到模拟遍历8个方向。
今天要读完接近1/4本书来分享,就暂时不在这简单题上写了,题解如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
class Solution {
public:
bool checkMove(vector<vector<char>>& board, int rMove, int cMove, char color) {
// 判断每个方向是否存在以操作位置为起点的好线段
auto check = [&](int dx, int dy) -> bool {
int x = rMove + dx;
int y = cMove + dy;
int step = 1; // 当前遍历到的节点序号
while (x >= 0 && x < 8 && y >= 0 && y < 8) {
if (step == 1) {
// 第一个点必须为相反颜色
if (board[x][y] == '.' || board[x][y] == color) {
return false;
}
}
else {
// 好线段中不应存在空格子
if (board[x][y] == '.') {
return false;
}
// 遍历到好线段的终点,返回 true
if (board[x][y] == color) {
return true;
}
}
++step;
x += dx;
y += dy;
}
// 不存在符合要求的好线段
return false;
};
// 从 x 轴正方向开始逆时针枚举 8 个方向
vector<int> dx = {1, 1, 0, -1, -1, -1, 0, 1}; // 行改变量
vector<int> dy = {0, 1, 1, 1, 0, -1, -1, -1}; // 列改变量
for (int k = 0; k < 8; ++k) {
if (check(dx[k], dy[k])) {
return true;
}
}
return false;
}
};
// 链接:https://leetcode.cn/problems/check-if-move-is-legal/solutions/922028/jian-cha-cao-zuo-shi-fou-he-fa-by-leetco-gqwz/
|
Review
工作压力的代价——我们该如何减压?【TED演讲】
工作压力太大会导致各种身心问题,并且大大降低效率,所以及时正念冥想练习,活在当下,才能过更高效健康的生活。
Tips
JuiceFS 对比 CephFS
读完之后对比,感觉对架构选型,功能选择有很大帮助,利好架构思维
Share
李光耀观天下