Contents

ARST打卡第207周[207/521]

Algorithm

lc1027_最长等差数列

下标不用等差,那就是暴力O(n^3),但是超过数据范围了,就算剪枝也有可能tle

然后看了答案之后才发现nums[i] 取值范围又用用意,是需要动态规划

题解非常巧妙,可以学习一下

主要是状态思考,状态转移的思考,多多回味一下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
    int longestArithSeqLength(vector<int>& nums) {
        auto [minit, maxit] = minmax_element(nums.begin(), nums.end());
        int diff = *maxit - *minit;
        int ans = 1;
        for (int d = -diff; d <= diff; ++d) {
            vector<int> f(*maxit + 1, -1);
            for (int num: nums) {
                if (int prev = num - d; prev >= *minit && prev <= *maxit && f[prev] != -1) {
                    f[num] = max(f[num], f[prev] + 1);
                    ans = max(ans, f[num]);
                }
                f[num] = max(f[num], 1);
            }
        }
        return ans;
    }
};

Review

【TED演讲】提升自信的技巧

如何变得自信

  • 在自己想要自信的事情上不断练习上万次
  • 不断给自己好的心理暗示,可以写信给未来有成就的自己,不断阅读这个信

作为长辈: 表扬其他做得好的人来激励做得不好的人,但不要直接批评做得不好的人

如果是你一定要达成的事情,即使所有人都不相信你,你也要相信自己

Tips

快速上手好用的mermaid时序图

Share-硬链接拷贝的使用思考

linux-posix环境的二次link测试:

 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
 ⚡ 04/20|19:38:44  testecho "hello" > hello
 ⚡ 04/20|19:38:56  test  ln hello hello-link1
 ⚡ 04/20|19:39:11  test  ll
total 16K
-rw-r--r-- 2 root root    6 Apr 20 19:38 hello
-rw-r--r-- 2 root root    6 Apr 20 19:38 hello-link1
 ⚡ 04/20|19:39:12  test  ln hello-link1 hello-link-link
 ⚡ 04/20|19:39:34  test  ll
total 20K
-rw-r--r-- 3 root root    6 Apr 20 19:38 hello
-rw-r--r-- 3 root root    6 Apr 20 19:38 hello-link-link
-rw-r--r-- 3 root root    6 Apr 20 19:38 hello-link1
 ⚡ 04/20|19:39:35  test  cat hello-link-link
hello
 ⚡ 04/20|19:39:44  testecho "link-link-ap-write" >>  hello-link-link
 ⚡ 04/20|19:40:20  test  cat hello
hello
link-link-ap-write
 ⚡ 04/20|19:40:24  testecho "link1-ap-write" >>  hello-link1
 ⚡ 04/20|19:40:53  test  cat hello
hello
link-link-ap-write
link1-ap-write
 ⚡ 04/20|19:40:57  test  cat hello-link1
hello
link-link-ap-write
link1-ap-write
 ⚡ 04/20|19:41:05  test  cat hello-link-link
hello
link-link-ap-write
link1-ap-write
 ⚡ 04/20|19:46:46  test  ls -lhti
total 20K
 52367 -rw-r--r-- 3 root root   40 Apr 20 19:40 hello
 52367 -rw-r--r-- 3 root root   40 Apr 20 19:40 hello-link-link
 52367 -rw-r--r-- 3 root root   40 Apr 20 19:40 hello-link1

硬链接

1
ln file1 file2

实现对file1的一个硬连接。不能跨分区,文件夹无效。不同于拷贝(复制)。修改file1,file2会变;修改file2,file1会变。删除file1后file2任然存在且可用(数据仍然为file1的数据)。

每对file1增加一个硬连接,系统对file1的对应的硬盘数据节点的连接数加1,其Inode是共用的。当删除file1或file2等其它硬连接时,对磁盘对应的数据节点连接数减1,只有当连接数为0时,才真正的删除数据(inode)。

硬链接的一个好处就是,文件移动到其他位置,仍旧有效,而软链接会出因为路径问题而无效。