ARTS Week 7
阿新 • • 發佈:2021-10-10
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 的建議,具體如下:
- 不要全身心投入。Vim 不同於 VS Code、IDE 等,你無法一在開始就掌握它,因此在安裝好 Vim 後,每天使用 15~30 分鐘,留意你覺得 Vim 缺乏哪些你想要的特性,把它們記錄下來。
- 不要被各種 Vim 麻痺。有很多中 Vim 可供使用:原生 Vim、Neovim、GVim、Onivim、Spacevim 等等,作者更推薦使用 Neovim。
- 配置你自己的
.vimrc
:剛開始使用 Vim 時,你也許會使用其他人已經配置好的 Vim,但慢慢地,你會發現別人的配置檔案並不適合自己,此時你就需要開始構建自己的 Vim 配置檔案(.vimrc
- 只帶你真正需要的東西。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
正好利用假期思考了下,覺得自己目前進入了一個瓶頸中,看似每天很充實,但收穫卻很有限,究其原因應該是重複著使用過去的方式,從而導致止步不前。想要突破,就需要踏出自己的舒適區,去嘗試自己之前沒有試過的新方法,才有可能突破。