ARTS-week-3

用户头像
youngitachi
关注
发布于: 2020 年 06 月 14 日

1. Algorithm

[89. Gray Code](https://leetcode.com/problems/gray-code/)

问题描述:

一个数组,任意位置连续两个数的二进制表达中两个数仅一bit不同,则整个数组可以称为Gray Code,给定一个数n,表示二进制的总位数,返回n位二进制数组成的一个Gray Code(任意一个即可但需要以0开头)。其中n=0时返回[0],n=1时,返回[0, 1]

在做1位、2位的时候,就发现了可以使用递归,但是递归的规则仍然需要思考一下。当为k位时,假定已经有了一个数组result,当为k+1位时,无非是新增了result.length个数字,且最高位为1而已,因此自然想到利用result,将result里的每个数都加上1 << k即可,假设得到result2,但是如何将result和这新的result2进行拼接呢?显然result[length - 1]和result2[0]并不是满足只有1位不同的条件,但是result[length - 1]和result2[length - 1]却满足,因此自然想到将result2反转一下。代码如下:

class Solution {
public:
vector<int> grayCode(int n) {
vector<int> result;
if (n == 0) {
result.push_back(0);
return result;
}
result = grayCode(n - 1);
int len = result.size();
int base = 1 << (n - 1);
for (int i = len - 1; i >= 0; i--) {
result.push_back(base + result[i]);
}
return result;
}
};

虽然是medium难度,不过其实和easy也相差不远,只要能够想到递归,应该就能很快的解答。当然,无论如何,各种临界值还是需要测试下的。

2. Review

Spring In Action 5th第1.4节。

大致对spring的各个模块进行了介绍,包括:

  • Core Spring Framework

  • Spring Boot

  • Spring Data

  • Spring Security

  • Spring Integration and Spring Batch

  • Spring Cloud

目前来讲,Core Spring肯定是必须要掌握的,而Spring Boot,已经成为了开发应用不可或缺的了,至于Spring Data,当需要与数据库打交道时,自然需要它,而由于对安全性的需求,Spring Security也必不可少,Spring Integration and Spring Batch则是为了整个别的应用或者整合别的Spring模块,由于微服务的盛行,Spring Cloud也变的十分火热,至少需要对其又一定的了解。

3. Tips

学习了盛延敏老师的《网络编程实战》,总结下TCP连接中的异常情况。假设对端发生问题,来分析本端的结果。

可以按照对端是否发送FIN划分异常情况:

  1. 对端发送FIN,一般都是对端进程崩溃,或者关机

  2. 对端不发送FIN,一般为对端主机崩溃,或者网络连接不可用

一般而言,要感知TCP的状况,有两种方法:

  1. 进程阻塞于read,内核发送结果

  2. 内核向进程发送信号(例如SIGPIPE)

总结的思维导图如下:



4. Share

分享下吴军老师的《硅谷来信》,第一封信:不做伪工作者。

伪工作者,大概是这样的一种状态:要做的事情太多,总是做不完,但是显得忙碌却不见成果。

解决问题的唯一方法,大概就是放弃掉一些事情,而不是吧所有的事情都凑合着做完。

新员工都欠缺着一个技能:

一个人所追求的不应该是完成了百分之几,或者百分之几十的工作,而是做完了那几件重要的事情。一个聪明的员工,应该善于找到最重要的工作,并且优先完成他们。

防止成为伪工作者的方法:

首次,管理着要让员工在“做什么事情能让公司最大获益”的基础上去工作。

其次,管理者要让员工明白,他们积极工作(而不是消极完成任务),最大的受益方是他们自己。

作为一个工作不到两年的基层员工,基本上无法体会没太curd代码到底是如何让自己受益的,也不曾想过要如何让公司最大获益。不过从很具体的事情上讲,代码写好单元测试,有目的的重构,总归会是个双赢的结果。能够有足够的观念转变,也才能够有积极的心态去工作。

用户头像

youngitachi

关注

还未添加个人签名 2018.08.22 加入

还未添加个人简介

评论

发布
暂无评论
ARTS-week-3