ARST打卡第141周[141/521]

Algorithm

lc382_链表随机节点

蓄水池算法

https://leetcode-cn.com/problems/linked-list-random-node/solution/lian-biao-sui-ji-jie-dian-by-leetcode-so-x6it/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
ListNode *head;

public:
Solution(ListNode *head) {
this->head = head;
}

int getRandom() {
int i = 1, ans = 0;
for (auto node = head; node; node = node->next) {
if (rand() % i == 0) { // 1/i 的概率选中(替换为答案)
ans = node->val;
}
++i;
}
return ans;
}
};

Review

【TED演讲】如何在你关心的事情上做的更好?

视频把人做事情的时候分为两种状态:

  1. 学习状态:尽量刻意练习,专注于提升做某件事情的某个技能点的提升
  2. 表现状态:把自己最好的状态表现出来,精准而又熟练

视频中说想要把一件事情做好,并且不断提升自己的技能,需要在学习状态下刻意练习,专注沉浸,模仿真实场景。
并且在表现状态下全力以赴地表现好,并且在表现后思考反馈自己之前的表现,还可以找其他人给与建议。
通过这两点不断使自己的技能得到提高。

Tips

理解Linux的文件描述符FD与Inode

Share

git pull无反应