arts-2019-05-12

Algorithm 算法题

每周至少做一个leetcode 的算法题

https://leetcode-cn.com/problems/merge-two-sorted-lists/
21. 合并两个有序链表

注意是有序的。怎么保证有序呢?

最直接的想法,循环遍历两个链表,按值大小新生成一个列表。然后按列表重新生成一遍链表。时间复杂度 O(m + n + m + n)。

然后发现,其实每一步都是比较两个 Node,把值较小的或者不为空的节点排在前面。于是,可以有了:

if not l1 or (l2 and l1.val > l2.val):
    l1, l2 = l2, l1

Review 外国文章

阅读并点评至少一篇英文技术文章

https://medium.com/@alicjaes/saying-goodbye-to-microsoft-bb5db8662656
Saying goodbye to Microsoft

作者是一名曾在微软工作的女生,很遗憾她的团队让她很不舒服,从她的经历看来离开是对的。
解决不了的才是问题,杀不死我们的让我们更强大。

Technique 技巧总结

学习至少一个技术技巧

环境变量,可以固化一些配置性的参数到变量中,从而实现共享,方便修改等目的。

环境变量可以被当前进程读取,但修改/设置环境变量不一定是全局的。

  • set,仅对当前进程有效,不会被子进程继承。
  • env 仅为子进程设置环境变量。
  • export,将一个 shell 本地变量提升为当前 shell 进程的环境变量,从而被子进程自动继承,但是export的变量无法改变父进程的环境变量。
  • source,在当前 shell 中运行脚本,不会启动新的 shell 进程。

Share 思考分享

至少分享一篇有观点和思考的技术文章

https://braydie.gitbooks.io/how-to-be-a-programmer/content/zh/
How to be a Programmer 中文版

感觉程序员的工作中,很重要一部分是扮演沟通的角色,如何把产品需求落地成为技术解决方案,如何通过技术的眼光和手段把需求实现得更好。

2019-05-19 23:58 17
Comments
Write a Comment