1. 程式人生 > 其它 >ARTS Week 7

ARTS Week 7

Algorithm

本週的 LeetCode 題目為 237. 刪除連結串列中的節點

題目簡介:請編寫一個函式,使其可以刪除某個連結串列中給定的(非末尾)節點。傳入函式的唯一引數為要被刪除的節點 。

輸入:head = [4,5,1,9], node = 5
輸出:[4,1,9]

題目思路:因為無法獲取給定節點之前的節點,只能獲取當前節點和它後面的節點。因此,我們可以將當前節點的值更改為其下個節點的值,而後刪除其之後的節點。示例如下:

head = 4->5->1->9, node = 5
更新 node 的值: 4->1->1->9
刪除 node 後面的一個節點:4->1->9

最終程式碼

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public void deleteNode(ListNode node) {
        node.val = node.next.val;
        node.next = node.next.next;
    }
}

Review

本週 Review 的英文文章為:導致 Vim 初學者放棄反模式

作者在文中給出了一些能讓初學者更容易習慣於使用 vim 的建議,具體如下:

  1. 不要全身心投入。Vim 不同於 VS Code、IDE 等,你無法一在開始就掌握它,因此在安裝好 Vim 後,每天使用 15~30 分鐘,留意你覺得 Vim 缺乏哪些你想要的特性,把它們記錄下來。
  2. 不要被各種 Vim 麻痺。有很多中 Vim 可供使用:原生 Vim、Neovim、GVim、Onivim、Spacevim 等等,作者更推薦使用 Neovim。
  3. 配置你自己的 .vimrc:剛開始使用 Vim 時,你也許會使用其他人已經配置好的 Vim,但慢慢地,你會發現別人的配置檔案並不適合自己,此時你就需要開始構建自己的 Vim 配置檔案(.vimrc
    )了,隨著你不斷更新自己的 Vim 配置檔案,你使用 Vim 也會越來越順手
  4. 只帶你真正需要的東西。Vim 提供了多種外掛,但 Vim 是編輯器而不是IDE,因此你不需要裝太多外掛,你只需要安裝你真正需要的外掛即可,記住,少就是多。

Tip

Java 中使用 synchronized 鎖住 this 時,以下兩種寫法是等價的:

public void add(int n) {
    synchronized(this) { // 鎖住this
        count += n;
    } // 解鎖
}
public synchronized void add(int n) { // 鎖住this
    count += n;
} // 解鎖

Share

正好利用假期思考了下,覺得自己目前進入了一個瓶頸中,看似每天很充實,但收穫卻很有限,究其原因應該是重複著使用過去的方式,從而導致止步不前。想要突破,就需要踏出自己的舒適區,去嘗試自己之前沒有試過的新方法,才有可能突破。