原创 LeetCode 121:買賣股票的最佳時機(Java實現)

LeetCode 121:買賣股票的最佳時機題目思路1:暴力思路2:動態規劃代碼結果沒成功的解法 題目 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票),設計一

原创 LeetCode 122:買賣股票的最佳時機 II(Java實現)

LeetCode 122:買賣股票的最佳時機 II題目思路代碼結果 題目 給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個算法來計算你所能獲取的最大利潤。你可以儘可能地完成更多的交易(多次買賣一支股票)。

原创 LeetCode 26:刪除排序數組中的重複項(Java實現)

LeetCode 26:刪除排序數組中的重複項題目思路代碼結果 題目 給定一個排序數組,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O

原创 LeetCode 09:迴文數(Java實現)

LeetCode 09:迴文數(Java實現) 題目 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1:輸入: 121 輸出: true 示例 2:輸入: -121 輸出: fal

原创 LeetCode 70:爬樓梯(Java實現)

LeetCode 70:爬樓梯題目思路1:動態規劃代碼結果思路2:數學,斐波那契 題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個

原创 LeetCode 124:二叉樹中的最大路徑和(Java實現)

LeetCode 124:二叉樹中的最大路徑和題目思路代碼結果 題目 給定一個非空二叉樹,返回其最大路徑和。 本題中,路徑被定義爲一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含一個節點,且不一定經過根節點。 示例 1:

原创 LeetCode 20:有效的括號(Java實現)

LeetCode 20:有效的括號(Java實現) 題目 給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順

原创 LeetCode 15:三數之和(Java實現)

LeetCode 15:三數之和(Java實現) 題目 給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。 注意:答案

原创 LeetCode 14:最長公共前綴(Java實現)

LeetCode 14:最長公共前綴(Java實現) 題目 編寫一個函數來查找字符串數組中的最長公共前綴。如果不存在公共前綴,返回空字符串 “”。 示例 1:輸入: [“flower”,“flow”,“flight”] 輸出: “

原创 LeetCode 235:二叉搜索樹的最近公共祖先(Java實現)

LeetCode 235:二叉搜索樹的最近公共祖先題目二叉搜索樹(BST)的性質思路:遞歸代碼結果 題目 給定一個二叉搜索樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義爲:“對於有根樹 T 的兩個結點

原创 LeetCode 237:刪除鏈表中的節點(Java實現)

題目 請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。 現有一個鏈表 – head = [4,5,1,9],它可以表示爲: 示例 1: 輸入: head = [4,5,1,9], node

原创 LeetCode 21:合併兩個有序鏈表(Java實現)

LeetCode 21:合併兩個有序鏈表(Java實現) 題目 將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 示例:輸入:1->2->4, 1->3->4 輸出:1->1->2->3

原创 LeetCode 292:Nim遊戲(Java實現)

題目 你和你的朋友,兩個人一起玩 Nim 遊戲: 桌子上有一堆石頭,每次你們輪流拿掉 1 - 3 塊石頭。 拿掉最後一塊石頭的人就是獲勝者。你作爲先手。 你們是聰明人,每一步都是最優解。 編寫一個函數,來判斷你是否可以在給定石頭數

原创 LeetCode 05:最長迴文子串(Java實現)

LeetCode 05:最長迴文子串(Java實現) 題目 給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。 示例 1:輸入: “babad”,輸出: “bab”,注意: “aba” 也是

原创 LeetCode 236:二叉樹的最近公共祖先(Java實現)

LeetCode 236:二叉樹的最近公共祖先題目this用法思路代碼結果問題 題目 給定一個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義爲:“對於有根樹 T 的兩個結點 p、q,最近公共祖先表示