zoukankan      html  css  js  c++  java
  • 左耳听风-ARTS-第3周(2019/4/7-2019/4/13)

    Algorithm

    本周的算法题是按顺序合并两个已排序的链表(https://leetcode.com/problems/merge-two-sorted-lists/)。和归并排序的合并已排序数组的过程类似。

    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
            ListNode left = l1;
            ListNode right = l2;
    
            ListNode head = null;
            ListNode node = null;
    
            while (left != null && right != null) {
                if (left.val <= right.val) {
                    if (node == null) {
                        node = new ListNode(left.val);
                        head = node;
                    } else {
                        node.next = new ListNode(left.val);
                        node = node.next;
                    }
                    left = left.next;
                } else {
                    if (node == null) {
                        node = new ListNode(right.val);
                        head = node;
                    } else {
                        node.next = new ListNode(right.val);
                        node = node.next;
                    }
                    right = right.next;
                }
            }
    
            while (left != null) {
                if (node == null) {
                    node = new ListNode(left.val);
                    head = node;
                } else {
                    node.next = new ListNode(left.val);
                    node = node.next;
                }
                left = left.next;
            }
    
            while (right != null) {
                if (node == null) {
                    node = new ListNode(right.val);
                    head = node;
                } else {
                    node.next = new ListNode(right.val);
                    node = node.next;
                }
                right = right.next;
            }
            return head;
        }

    Reading

    这篇文章名是《Act with Prudence》(https://97-things-every-x-should-know.gitbooks.io/97-things-every-programmer-should-know/content/en/thing_01/),翻译过来时谨慎行事。文章主要讨论了技术债务这个问题。当在工作遇到必须在“正确的做”和“快速的做”这两种决策中选择时,我们往往倾向于“快速的做”,然后有时间再回来改,这时就埋下了技术债务。技术债务就像贷款,拖的时间越长,利息就越大。对于编程来说,结果可能最终导致代码难以维护。更糟的情况时,由于时间紧,需要在这些技术债务上再添加新的功能,到最后再回过头来偿还技术债务,可以说是灾难性的。这是像我这样的新手不知道,也意识不到的,需要特别注意。有了技术债务,要尽快偿还。

    Tip

    这周在看Spring cloud Netflix Zuul的源码时,发现Spring Cloud Netflix的内部添加了很多Filter,完成了主要的处理。直接读这些Filter的代码是枯燥的,就想看看真正的请求过来时,它怎么处理。一开始采用的笨办法是把要看的Filter源码复制出来,放在本地的Filter路径中看打印日志,弄了半天,才想起Debug更方便,明白自己很业余,这么好的工具已经忘了。

    Share

    这周工作中用到了Zuul网关,我研究了下,写了篇总结,https://www.cnblogs.com/minguo/p/10690433.html

  • 相关阅读:
    self 和 super 关键字
    NSString类
    函数和对象方法的区别
    求两个数是否互质及最大公约数
    TJU Problem 1644 Reverse Text
    TJU Problem 2520 Quicksum
    TJU Problem 2101 Bullseye
    TJU Problem 2548 Celebrity jeopardy
    poj 2586 Y2K Accounting Bug
    poj 2109 Power of Cryptography
  • 原文地址:https://www.cnblogs.com/minguo/p/10703937.html
Copyright © 2011-2022 走看看