ARTS-3

ARTS

也就是 Algorithm、Review、Tip、Share 简称ARTS

  1. 每周至少做一个 leetcode 的算法题
  2. 阅读并点评至少一篇英文技术文章
  3. 学习至少一个技术技巧
  4. 分享一篇有观点和思考的技术文章

Algorithm

linked-list-cycle

给定一个链表,判断链表中是否有环。

为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

  1. 记录脚印,每走一步就一看脚下是否是曾经走过的路… O(∩_∩)O哈哈~ 如果有自己的脚印则说明有环

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /**
    * Definition for singly-linked list.
    * function ListNode(val) {
    * this.val = val;
    * this.next = null;
    * }
    */

    /**
    * @param {ListNode} head
    * @return {boolean}
    */
    var hasCycle = function(head) {
    let arr = []
    while (head) {
    if (arr.includes(head)) {
    return true
    }
    arr.push(head)
    head = head.next
    }
    return false
    }
  2. 双指针,快慢对比,跳一步与跳两步的值比较,如果有碰见则说明有环

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    /**
    * Definition for singly-linked list.
    * function ListNode(val) {
    * this.val = val;
    * this.next = null;
    * }
    */

    /**
    * @param {ListNode} head
    * @return {boolean}
    */
    var hasCycle = function(head) {
    let slow = head
    let fast = head
    while (slow && fast && fast.next) {
    slow = slow.next
    fast = fast.next.next
    if (slow === fast) {
    return true
    }
    }
    return false
    }

Review

Why I, A Serverless Developer, Don’t Care About Your Containers

一位Serverless开发者表示为何无需关心容器,确实开发者只关心自己的函数真是美滋滋,同时表示无服务所引发的悖论,是否会忽略技术的新趋势,是否应该沉浸在无知的幸福里。抛开这些,需要买一辆车还是租一辆车还是需要看实际场景。

serverless

Tip

如果觉得git log查看log太丑陋,打开终端,给git的命令弄一个别名叫git lg

1
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

Share

耗子哥分享的《STACKOVERFLOW 2019 程序员调查》