ARTS 1.7

每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西!

Algorithm: 学习算法

题目: https://leetcode.com/problems/3sum/

本来以为这题是Two Sum的加强版,固定一个数,剩下的两个数双重循环去遍历,但那样会超时。

减少时间的方法是先通过排序,再使用双指针法来找出 和为固定数a[n]的负数 的两个数。

注意过程中可以减少判断次数,比如当固定的数大于0时就跳出,因为后面的数都比0大了;再比如固定的数a[n]如果和前一个a[n-1]相同,则可以跳过;

还要防止重复结果出现,就是当找到一个结果后,跳过与左边指针相同的数,然后跳过与右边指针相同的数。

解法:https://leetcode.com/submissions/detail/200504889/

Review: 学习英文

继续阅读马丁大叔文章《微服务》的一部分。

https://martinfowler.com/articles/microservices.html#ComponentizationViaServices

读完后对于service 是相对于 library 而言的。单体程序的组合方式是将库链接起来,通过内存中的方法来调用。微服务下的组合方式是通过轻量级通信机制如 http协议 来完成的。

这样做的好处是便于独立部署。

Tips: 知识点

读《unix网络编程》第五章。使用netstat 和 ps 两个bash工具,来对处于TCP连接两端的客户端/服务端中进程的握手/挥手 状态 进行分析 。明白信号的作用,是为了让主进程可以及时处理子进程的状态。

Share: 价值观

工作就是满足公司的需要。

工作的过程就是寻找并且满足公司需要的过程。

面试成功代表公司认可你的技能可以满足他的需要。面试失败只是说明他们不需要你的技能,并不代表你没有价值。

认清自己的价值,然后寻找合适的客户,就是工作的意义。

原文地址:https://www.cnblogs.com/andrew-chen/p/10255502.html