原创 合併K個排序鏈表和數據

合併K個排序鏈表 合併 k 個排序鏈表,返回合併後的排序鏈表。請分析和描述算法的複雜度。 輸入: [ 1->4->5, 1->3->4, 2->6 ] 輸出: 1->1->2->3->4->4->5->6 時間複雜度是O(N

原创 ClassNotFoundException和NoClassDefFoundError的區別

首先,ClassNotFoundException是編譯時的錯誤,NoClassDefFoundError是Error系統錯誤。 我們再來看ClassNotFoundxception源碼 * Thrown when an applica

原创 LeetCode 刷題之路

2019/3/25 棧 84 柱狀圖中最大的矩形 樹 對稱二叉樹  

原创 機器人的運動範圍

題目描述 地上有一個m行和n列的方格。一個機器人從座標0,0的格子開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數位之和大於k的格子。 例如,當k爲18時,機器人能夠進入方格(35,37),因爲3+5+

原创 滑動窗口的最大值

題目描述 給定一個數組和滑動窗口的大小,找出所有滑動窗口裏數值的最大值。例如,如果輸入數組{2,3,4,2,6,2,5,1}及滑動窗口的大小3,那麼一共存在6個滑動窗口,他們的最大值分別爲{4,4,6,6,6,5}; 針對數組{2,3,4

原创 按之字形順序打印二叉樹

題目描述 請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。 解題思路 按照之字形,從根節點開始,根節點爲第一層,奇數層從左到右開始打印,偶數層

原创 刪除鏈表中重複的節點

題目描述 在一個排序的鏈表中,存在重複的結點,請刪除該鏈表中重複的結點,重複的結點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理後爲 1->2->5 解題思路 1. 首先添加一個頭節點,以方便碰到第一個,

原创 數據流中的中位數

題目描述 如何得到一個數據流中的中位數?如果從數據流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從數據流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。我們使用Insert()方法讀取數據流,使

原创 二叉樹的下一個結點

題目描述 給定一個二叉樹和其中的一個結點,請找出中序遍歷順序的下一個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指針。 解題思路 先判斷這個結點是否爲空,不爲空就走下一步,判斷這個結點是否有右子樹,如果有右子樹的

原创 序列化二叉樹

題目描述 請實現兩個函數,分別用來序列化和反序列化二叉樹 解題思路 按照先序遍歷的順序進行序列化,按照先序遍歷的順序進行反序列化。 /* public class TreeNode { int val = 0; Tree

原创 二叉搜索樹的第K個結點

題目描述 給定一棵二叉搜索樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8)    中,按結點數值大小順序第三小結點的值爲4。 解題思路 二叉搜索數的中序遍歷是遞增的形式,所以找到第k小個數就是中序遍歷的第K個元素。需要

原创 對稱的二叉樹

題目描述 請實現一個函數,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其爲對稱的。 解題思路 需要判斷二叉樹是否是對稱,那就判斷左子樹的左子樹和右子樹的右子樹是否相等,而且還要判斷左子樹的右子樹和右子

原创 把二叉樹打印成多行

題目描述 從上到下按層打印二叉樹,同一層結點從左到右輸出。每一層輸出一行。 解題思路 用隊列存儲每個結點,用兩個指針,一個指針表示移動的指針,另一個指針表示這一行的最後的結點,每次從隊列拿出的指針如果是這一行的最後一個結點的話那麼就把數據

原创 把字符串轉換成整數

題目描述 將一個字符串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0。 輸入描述 輸

原创 孩子們的遊戲(圓圈中最後剩下的數)

題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作爲牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號爲0的小朋友開始報數