原创 最長迴文子串——馬拉車算法

針對最長迴文子串相關的問題,馬拉車算法應該是比較通用的解法,今天我們就來具體看看這個算法。 簡介 馬拉車算法(Manacher‘s Algorithm)是用來查找一個字符串的最長迴文子串的線性方法,由一個叫 Manacher

原创 設計模式——單例模式

關於單例模式,這是面試時最容易遇到的問題。當時以爲很簡單的內容,深挖一下,也可以關聯出類加載、序列化等知識。餓漢式我們先來看看基本的餓漢式寫法:public class Hungry { private static fina

原创 設計模式——單例模式

關於單例模式,這是面試時最容易遇到的問題。當時以爲很簡單的內容,深挖一下,也可以關聯出類加載、序列化等知識。 餓漢式 我們先來看看基本的餓漢式寫法: public class Hungry { private stat

原创 力扣139——單詞拆分

原題 給定一個非空字符串 s 和一個包含非空單詞列表的字典 wordDict,判定 s 是否可以被空格拆分爲一個或多個在字典中出現的單詞。 說明: 拆分時可以重複使用字典中的單詞。 你可以假設字典中沒有重複的單詞。 示例 1:

原创 力扣309——最佳買賣股票時機含冷凍期

這道題主要涉及狀態轉移方程,想清楚所有狀態後,就可以輕鬆解決。 原題 給定一個整數數組,其中第 i 個元素代表了第 i 天的股票價格 。 設計一個算法計算出最大利潤。在滿足以下約束條件下,你可以儘可能地完成更多的交易(多次買賣一支

原创 力扣152——乘積最大子序列

這道題主要就是利用動態規劃進行解答,如果要進行優化,就需要找規律了。 原題 給定一個整數數組 nums ,找出一個序列中乘積最大的連續子序列(該序列至少包含一個數)。 示例 1: 輸入: [2,3,-2,4] 輸出: 6 解釋: 

原创 力扣75——顏色分類

原題 給定一個包含紅色、白色和藍色,一共 n 個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。 此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。 注意: 不能使用代碼庫中

原创 力扣105——從前序與中序遍歷序列構造二叉樹

原題 根據一棵樹的前序遍歷與中序遍歷構造二叉樹。 注意:你可以假設樹中沒有重複的元素。 例如,給出 前序遍歷 preorder = [3,9,20,15,7] 中序遍歷 inorder = [9,3,15,20,7] 返回如下的二

原创 力扣79——單詞搜索

原題 給定一個二維網格和一個單詞,找出該單詞是否存在於網格中。 單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中“相鄰”單元格是那些水平相鄰或垂直相鄰的單元格。同一個單元格內的字母不允許被重複使用。 示例: board =

原创 力扣86——分隔鏈表

原題 給定一個鏈表和一個特定值 x,對鏈表進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。 你應當保留兩個分區中每個節點的初始相對位置。 示例: 輸入: head = 1->4->3->2->5->2, x =

原创 力扣207——課程表

這道題主要利用拓撲排序,判斷該圖是否有環,其中還會涉及到鄰接矩陣。 原題 現在你總共有 n 門課需要選,記爲 0 到 n-1。 在選修某些課程之前需要一些先修課程。 例如,想要學習課程 0 ,你需要先完成課程 1 ,我們用一個匹配

原创 力扣347——前 K 個高頻元素

這道題主要涉及的是對數據結構裏哈希表、小頂堆的理解,優化時可以參考一些排序方法。 原題 給定一個非空的整數數組,返回其中出現頻率前 k 高的元素。 示例 1: 輸入: nums = [1,1,1,2,2,3], k = 2 輸出:

原创 力扣560——和爲K的子數組

這道題主要是找規律,優化的時候可以利用哈希表和數組的特性。 原題 給定一個整數數組和一個整數 k,你需要找到該數組中和爲 k 的連續的子數組的個數。 示例 1 : 輸入:nums = [1,1,1], k = 2 輸出: 2 ,

原创 力扣399——除法求值

這道題主要涉及的是對樹的理解,相關的算法是BFS、DFS、並查集。 原題 給出方程式 A / B = k, 其中 A 和 B 均爲代表字符串的變量, k 是一個浮點型數字。根據已知方程式求解問題,並返回計算結果。如果結果不存在,則

原创 力扣438——找到字符串中所有字母異位詞

這道題主要是利用"窗口"這一概念,優化的時候可以利用題目本身的特殊性。 原題 給定一個字符串 s 和一個非空字符串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。 字符串只包含小寫英文字母,並且字符串 s