什么是ARTS?
(1)Algorithm:每周至少做一个leetcode的算法题
(2)Review:阅读并点评至少一篇英文技术文章
(3)Tip:学习至少一个技术技巧
(4)Share:分享一篇有观点和思考的技术文章
一、Algorithm
颜色分类
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
示例:
输入: [2,0,2,1,1,0]
输出: [0,0,1,1,2,2]
solution1:两趟扫描,第一趟统计个数,第二趟重写数组
代码:
二、Reviews
原文路径:https://jvns.ca/blog/2016/07/03/debugging-tools-i-love/
点评:文章介绍了作者最喜欢的5种Linux调试工具,分别是strace、dstat、tcpdump+wireshark、perf。作者分别介绍了每种工具适合场景和作用。
strace:能够跟踪系统调用;
dstat:能够显示每秒有多少数据被发送到网络上、有的多少数据被写到磁盘上;
tcpdump+wireshark:监控网络流量,帮助理解网络是如何运作的,例如:IP、TCP、HTTP之间的区别是什么?网络包到底是什么?
Perf:对于C程序,Perf可以告诉你程序在哪个函数中花费的时间最长
opensnoop:可以显示你的电脑上哪些文件是打开着的。
三、Tip
git使用小技巧
若觉得先git add把文件加入暂存区再git commit提交太麻烦,可通过git commit -am 一步搞定
四、Share
IO缓冲相关:https://blog.csdn.net/astrotycoon/article/details/44993197