原创 算法-Z字形變換

算法-Z字形變換1、Z字形變換 1、Z字形變換 6. Z 字形變換 將一個給定字符串根據給定的行數,以從上往下、從左到右進行 Z 字形排列。 比如輸入字符串爲 "LEETCODEISHIRING" 行數爲 3 時,排列如下

原创 Java-多文件多線程下載器的設計與實現(線程池)

Java-多文件多線程下載器的設計與實現1、多線程下載的原因和我們的目標2、下載派發器設計3、下載接口的設計4、單文件多線程下載的實現5、斷點續傳的實現6、如何使用7、總結 1、多線程下載的原因和我們的目標 多線程多文件下載是一個

原创 算法-驗證棧序列

算法-驗證棧序列1、驗證棧序列 1、驗證棧序列 946. 驗證棧序列 給定 pushed 和 popped 兩個序列,每個序列中的 值都不重複,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返

原创 算法-和爲K的子數組

算法-和爲K的子數組1、和爲K的子數組 1、和爲K的子數組 560. 和爲K的子數組 給定一個整數數組和一個整數 k,你需要找到該數組中和爲 k 的連續的子數組的個數。 示例 1 : 輸入:nums = [1,1,1], k

原创 算法-三個數的最大乘積(K很小時的TopK問題)

三個數的最大乘積1、三個數的最大乘積2、求最大的三個數 1、三個數的最大乘積 本題來源於:628. 三個數的最大乘積 難度easy。 給定一個整型數組,在數組中找出由三個數組成的最大乘積,並輸出這個乘積。 示例 1: 輸入:

原创 算法-擺動序列

算法-擺動序列1、擺動序列 1、擺動序列 376. 擺動序列 如果連續數字之間的差嚴格地在正數和負數之間交替,則數字序列稱爲擺動序列。第一個差(如果存在的話)可能是正數或負數。少於兩個元素的序列也是擺動序列。 例如, [1,7,

原创 算法-根據二叉樹創建字符串

算法-根據二叉樹創建字符串1、根據二叉樹創建字符串 1、根據二叉樹創建字符串 本題來源於:606. 根據二叉樹創建字符串。是一個easy類型的題,但是卻對我們掌握遞歸思想有很大的幫助。 有人說,理解遞歸,首先要理解遞歸。。。可見遞

原创 算法-單調棧問題合集

算法-單調棧問題合集1、移掉K位數字,使剩下的數字保持最小2、移掉K位數字,使剩下的數字保持最大3、去除重複字母,使字典序最小 單調棧顧名思義是一種單調遞增或者單調遞減的棧,雖然很簡單,但是的確是一種高級數據結構。 之前我寫的文章

原创 算法-根據字符出現頻率排序

算法-根據字符出現頻率排序1、根據字符出現頻率排序 1、根據字符出現頻率排序 451. 根據字符出現頻率排序 給定一個字符串,請將字符串裏的字符按照出現的頻率降序排列。 示例 1: 輸入: "tree" 輸出: "eert"

原创 算法-無重複字符的最長字串

算法-無重複字符的最長字串無重複字符的最長字串 無重複字符的最長字串 3. 無重複字符的最長子串 給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。 示例 1: 輸入: "abcabcbb" 輸出: 3

原创 算法-環形鏈表問題

這裏寫目錄標題1、環形鏈表2、環形鏈表II 1、環形鏈表 141. 環形鏈表 給定一個鏈表,判斷鏈表中是否有環。 爲了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos

原创 算法-二叉樹的最近公共祖先

算法-二叉樹的最近公共祖先二叉樹的最近公共祖先 二叉樹的最近公共祖先 236. 二叉樹的最近公共祖先 給定一個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義爲:“對於有根樹 T 的兩個結點 p、

原创 算法-島嶼問題專輯

算法-島嶼問題專輯1、島嶼數量2、被圍繞的區域3、島嶼最大面積4、島嶼周長 遇到島嶼問題,基本上就是一種算法:深搜+記憶化搜索。 1、島嶼數量 List item 200. 島嶼數量 給定一個由 '1'(陸地)和 '0'(水)

原创 設計模式-手寫觀察者模式

設計模式-手寫觀察者模式1、觀察者模式的概念2、Java代碼實現 1、觀察者模式的概念 觀察者模式的概念在這裏講的挺好 當對象間存在一對多關係時,則使用觀察者模式(Observer Pattern)。比如,當一個對象被修改時,則會

原创 算法-矩陣遍歷問題專輯

算法-矩陣遍歷問題專輯1、螺旋矩陣2、旋轉圖像3、搜索二維矩陣 II4、搜索二維矩陣 1、螺旋矩陣 54. 螺旋矩陣 給定一個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。 示例