Merge Intervals – 陪你刷題

Merge Interval 技巧可以有效解決 Overlapping intervals 的問題,這類問題可以衍生為找出 overlapping intervals 或是將 overlapping intervals 合併在一起,解決這類問題前,先歸納出區間之間關係,共有下圖六種狀況:

遇到 interval 問題時,兩個 interval 之間關係脫不了上圖中的六種狀況,若你需要合併區間,可以透過畫圖方式確認哪種狀況需要合併,合併後區間的起點跟終點大小該怎麼定。

閱讀全文〈Merge Intervals – 陪你刷題〉

Array Name 其實就是 Pointer

寫這篇文章的原因在於自己常常混淆一個觀念,在 C 語言中,若要傳遞陣列到函數中,函數的宣告可以寫為以下兩種格式:

int func (int *arr);

int func (int a[]);

如果要傳遞陣列到函數,以下方式都是正確的:

int data[10];

func (data);
func (&data[0]);

一直以來都沒有理解這兩種用法,導致使用或看 code 時,有不小的困擾,想藉著這篇文章探討這兩個用法的本質。

先說結論,其實 array 名稱在兩種狀況下會被自動轉為「一個 pointer 指向 array 的第一個元素」

閱讀全文〈Array Name 其實就是 Pointer〉