Contents

ARST打卡第337周

Algorithm

lc1625_执行操作后字典序最小的字符串

思路:

长度是偶数,然后只要b也为偶数,那指定需要找下标为0,2等偶数下标的最小值,然后从左到右累加到最小值即可。 如果b为奇数,就可以每个数都能累加,因此可以尝试任何数累加的最小值。

以上可以通过枚举来做,稍微复杂一点,慢慢绕一会就能理解(不比赛先不绕了),可以看题解

比较简单清晰的解法是如下的bfs方式。

 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
class Solution {
public:
    string findLexSmallestString(string s, int a, int b) {
        // 按照上面思路实现是可行的,这里直接实现
        int n = s.size();
        string ans = s;
        unordered_set<string> vis;
        queue<string> q;
        q.push(s);
        vis.insert(s);
        while (!q.empty()) {
            string cur = q.front(); q.pop();
            if (cur < ans) ans = cur;
            // 操作1:给奇数下标加a
            string t = cur;
            for (int i = 1; i < n; i += 2) {
                t[i] = ((t[i] - '0' + a) % 10) + '0';
            }
            if (vis.find(t) == vis.end()) {
                vis.insert(t);
                q.push(t);
            }
            // 操作2:旋转b位
            string t2 = cur.substr(n - b) + cur.substr(0, n - b);
            if (vis.find(t2) == vis.end()) {
                vis.insert(t2);
                q.push(t2);
            }
        }
        return ans;
    }
};

Review

Linux之父「Linus」透露:如何与不喜欢的合作❗️何为工程师精神

无需在自己的弱点方面花过多精力改变自己,持续发挥自己解决核心问题的长处,通过开源,让更有商业头脑的人去做好商业化的事情。一切都能较好得运转。

进入社会之后不再是木桶理论,而是长板理论。

Tip

玩偶姐姐第一次也是最后一次的真诚对话,一个关于谎言,真相和成长的故事

借假修真,流量经济,清醒得赚钱,并且敢于止损再次战斗,respect!

Share

《生命之书:365天的静心冥想》读书分享

这本书讲冥想,讲顿悟,因此很多元思考,引发强制性深入思考,需要比较多精力读的,不过因此也收获比较大。

其中比较贯穿全文的核心观念如下:

实相只能当下顿悟,不能通过过去或者未来积累。因为积累的都是记忆推导出来的,而实相只能觉知。

冥想就是觉知一切,从而活在当下,不再有对过去的遗憾,对未来的期待,从而不再有恐惧。