2020-ARTS-打卡第十三天
文章目录
Algorithm
题目
题目描述
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。答案中不可以包含重复的三元组。
题目解答
|
|
一共有三种解法,一是三层for循环,时间复杂度为O(n3);二是二层for循环外加Hash表,时间复杂度为O(n2),增加了空间复杂度O(n);第三种就是上面的解法,排序后从两侧开始匹配,时间复杂度为O(n2),空间复杂度为O(1)
Review
Managing my personal knowledge base这是一篇关于个人管理的文章,作者讲述了自己是怎样对个人知识进行分类 管理的。
书签管理
作者将书签进行了分层,不同级别(访问频率,保留时间)的书签由不同的工具来管理。
Chrome Bookmarks
浏览器书签方便添加,可按目录进行组织,可多设备同步,可以使用快捷访问工具(文中提到的是Albert,Mac上可以使用Alfred来实现)进行访问。但是浏览器书签的缺点也很明显,不能给书签打tag,不能加时间戳,不能加注释,还不能通过复杂的方式进行过滤。当书签数量上升后,会变得很难管理。
适合Chrome进行管理的书签:
- 云平台的web管理面板
- Gitlab面板
- 内容网站,如Hacker News,InfoQ
不适合Chrome进行管理的书签:
- 稍后读的博客文章
- 开源项目链接
- Stack Overflow上的问题
Workona
这个工具可以创建基于浏览器Tab的工作空间,对于一些长周期的项目来说很有用。对于一些特定的依赖场景,使用这个工具效率更高,其实使用Chrome的插件也可以达到管理多个Tab的效果。Workona还可以添加应用的信息,这些信息不被当作是书签来处理。
Notion
这个一个值得学习的工具,它用来管理与维护巨大的书签库。这个工具也是作者的主要知识管理工具。Notion会自动存储条目的元数据,如创建时间,重要性,而且可以对条目进行打标签。Notion支持针对不同用途来创建多个数据库。Notion的问题是还不支持快捷工具的搜索集成。Notion我也使用过,不过个人不喜欢鼠标操作,现在我的主要知识管理工具是Emacs+Org Mode+Org-Roam,功能强大到只能说好。
原生书签资源
这里面主要是一些经常访问的网站,以及在网站中进行搜索的情况,这种情况就直接保存网站地址即可。这类资源包括:
- 社交类网站
- Gitlab或者GitHub
- Hacker News等内容网站
对于这类原生书签资源可以使用工具配置成快捷方式,用快捷键直达。
组织生产资源
博客文章
-
文章草稿
作者所有的文章草稿都保存在Notion中,这样可以在写作时快速关联引用链接,代码片断,还可以对内容进行版本控制。一旦文章完成,修改文章的状态为Release。
-
跟踪最近想法
作者的文章都很长,使用Notion可以对先前的文章进行更新关联。
-
跟踪资源文件
作者把博客Notion库与书签Notion进行关联来达到目的。
做笔记
何时做笔记
- 从音频获取信息,如播客,会议
- 保存经常需要使用但是不属于指定项目的信息,如带多个参数的命令行信息;将来可能会重复的说明信息,如部署环境说明。
- 问题,不能立即向指定人请教的问题
不应该成为笔记的情况
- 项目相关的信息,这些东西应该有专用的系统来追踪
- 短暂使用的信息,如简单的谈话信息,使用后就可以删除了
总之要把握住度,不要过多也不要过少。
为什么做笔记
最明显就是记录事情。记笔记可以帮助大脑来构建知识结构,笔记可以帮助从记忆中恢复记忆。一些非常难的信息也是需要做笔记,做笔记也可以在写博客时被用到。
怎样做笔记
使用Markdown格式来进行书写,给每个笔记打上明确的标签,对于一些经常做的笔记(如会议)可以配置一个指定样式的模板来快速生成内容框架。
项目相关的信息
所有项目相关的信息最好都被在一起处理。像使用Github或者Gitlab,这两个网站都提供了与项目相关的功能,如Wiki,代码管理,问题追踪等等。
文件管理
- 使用云存储来同步文件以便多设备处理。
- 组织一个合适的文件结构以便可以快速的找到想要的文件。
- 可以使用快捷查找工具来进行查找,也可以使用命令工具(find, grep)进行快速查找。
代码片断
作为码农这个少不了,一般的开发工具都支持对代码片断的管理,高效的组织也有利于后期的查找与维护。
快捷键管理
工具多后记快捷键就费力了,我不会维护一个快捷键列表,而是只会记录我想要使用的命令来处理,当然在选择工具时就要看其是否支持命令查找,对于那些常用的快捷键,用多了自然就记住了。
Tip
Idea中调试修改变量的方式:
- 在调试面板中对变量进行修改,一般为F2,这个在修改一些简单变量时很有用
- 在代码中选中要修改的变量,Alt+F8来修改,提供代码面板,支持功能更多
Share
一封写给我自己的信,作为一个新的软件工程师,这篇文章总结了一些对新入行软件工程师的建议,作为老的软件工程师,读后感触很多。软件的道路是漫长的,要戒焦躁;尊重他人,而不是尊重头衔;交付价值,而不是代码 。等等,我会再读10遍的。