Contents

ARST打卡第270周

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

李光耀观天下