最長回文子串 (Longest Palindromic Substring) 是常考題。Palindrome 就是正讀反讀都一樣的詞語,比如範例給的 “bab”、 “bb” ,實際單字如 “level” 等等都屬於它。因為較好的解法是 DP 類型,初見就能想到,難度也比較高。一般人能熟悉 Dynamic Programming - 2D matrix 解就好了。(看過令人膜拜的神解 Manacher’s Algorithm,時間複雜度提升到了 O(n) …)

Continue reading

Graph 介紹

Graph 用於表示物體與物體之間存在某種關係的結構,是內存中不一定連續的資料,每個節點會一個或多個 Reference 指向其他節點

  • 可能有環
  • 分無向圖和有向圖
  • 沒有固定入口
  • 可能有多個入口

Continue reading

這是一道關於二叉搜索樹 Binary Search Tree 的題目。提示是讓我們用中序遍歷In-Order來解題。 可以複習一下 DFS 解法的 Pre-Order、In-Order Post-Order。 另外這道題的 Follow up 可以多思考,是假設該 BST 被修改的很頻繁,而且查找第 k 小元素的操作也很頻繁,問如何優化。

Continue reading

Binary Search Tree

二元搜尋樹(英語:Binary Search Tree),也稱為有序二元樹(ordered binary tree)或排序二元樹(sorted binary tree)。 從 wiki 上得到的時間與空間複雜度 :

演算法平均最差
空間O(n)O(n)
搜尋O(log n)O(n)
插入O(log n)O(n)
刪除O(log n)O(n)

Continue reading

刷題時很常出現 Array 的結構如 int[]、char[] 等等…,故在這邊條列一些常用的 Arrays 方法。這次主要整理下 Java 中 Arrays 類的常用方法,在使用過程也可以複習 java 提供的工具類,還有一些泛型的坑…

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan