原创 LeetCode刷題系列 -- 19. 刪除鏈表的倒數第N個節點

題目: 給定一個鏈表,刪除鏈表的倒數第 n 個節點,並且返回鏈表的頭結點。 示例: 給定一個鏈表: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,鏈表變爲 1->2->3->5. 說明: 給定的 n 保證是有效

原创 LeetCode刷題系列 -- 215. 數組中的第K個最大元素

題目:    在未排序的數組中找到第 k 個最大的元素。請注意,你需要找的是數組排序後的第 k 個最大的元素,而不是第 k 個不同的元素。 示例 1: 輸入: [3,2,1,5,6,4] 和 k = 2 輸出: 5 示例 2: 輸入: [

原创 LeetCode刷題系列 -- 665. 非遞減數列

題目:     給你一個長度爲 n 的整數數組,請你判斷在 最多 改變 1 個元素的情況下,該數組能否變成一個非遞減數列。 我們是這樣定義一個非遞減數列的: 對於數組中所有的 i (0 <= i <= n-2),總滿足 nums[i] <

原创 LeetCode刷題系列 -- 面試題 02.01. 移除重複節點

題目: 編寫代碼,移除未排序鏈表中的重複節點。保留最開始出現的節點。 示例1:  輸入:[1, 2, 3, 3, 2, 1]  輸出:[1, 2, 3] 示例2:  輸入:[1, 1, 1, 1, 2]  輸出:[1, 2] 提示: 鏈表

原创 LeetCode刷題系列 -- 209. 長度最小的子數組

題目:      給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的長度最小的連續子數組,並返回其長度。如果不存在符合條件的連續子數組,返回 0。 來源:力扣(LeetCode) 鏈接:https://l

原创 數據結構算法學習系列---設計包含min函數的棧

1、題目: 題目:定義棧的數據結構,要求添加一個min函數,能夠得到棧的最小元素。要求函數min、push以及pop的時間複雜度都是O(1)。  分析:這是google的一道面試題。我們需要一個輔助棧。每次push一個新元素的時候,同時將

原创 LeetCode刷題系列 -- 322. 零錢兌換

題目:322. 零錢兌換 給定不同面額的硬幣 coins 和一個總金額 amount。編寫一個函數來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 -1。 示例 1: 輸入: coins = [1, 2

原创 LeetCode 刷題系列- 面試題 08.11. 硬幣

題目:硬幣。給定數量不限的硬幣,幣值爲25分、10分、5分和1分,編寫代碼計算n分有幾種表示法。(結果可能會很大,你需要將結果模上1000000007) 示例1:  輸入: n = 5  輸出:2  解釋: 有兩種方式可以湊成總金額: 5

原创 LeetCode刷題系列 -- 3. 無重複字符的最長子串

題目: 給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。 示例 1: 輸入: "abcabcbb" 輸出: 3  解釋: 因爲無重複字符的最長子串是 "abc",所以其長度爲 3。 示例 2: 輸入: "bbbbb" 輸出

原创 LeetCode刷題系列:2. 兩數相加

題目:  給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 您可以假設除了數字 0

原创 LeetCode刷題系列 -- 96. 不同的二叉搜索樹

題目: 給定一個整數 n,求以 1 ... n 爲節點組成的二叉搜索樹有多少種? 輸入: 3 輸出: 5 解釋: 給定 n = 3, 一共有 5 種不同結構的二叉搜索樹:    1         3     3      2      

原创 LeetCode刷題系列:LeetCode 523. 連續的子數組和

題目:給定一個包含非負數的數組和一個目標整數 k,編寫一個函數來判斷該數組是否含有連續的子數組,其大小至少爲 2,總和爲 k 的倍數,即總和爲 n*k,其中 n 也是一個整數。 輸入: [23,2,4,6,7], k = 6 輸出: Tr

原创 LeetCode刷題系列--1. 兩數之和

題目: 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和爲目標值的那 兩個 整數,並返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素不能使用兩遍。 來源:力扣(LeetCode)

原创 LeetCode系列 -- 面試題42. 連續子數組的最大和

題目: 輸入一個整型數組,數組裏有正數也有負數。數組中的一個或連續多個整數組成一個子數組。求所有子數組的和的最大值。 要求時間複雜度爲O(n)。 示例: 輸入: nums = [-2,1,-3,4,-1,2,1,-5,4] 輸出: 6

原创 數據結構與算法系列 --- 貪心算法

1、錢幣找零問題 題目:問題描述:分別有1,5,10,50,100元, 分別有5,2,2,3,5張紙幣。問若要支付k元,則最少需要多少張紙幣? 解題思路:每次選擇支付的紙幣時,儘量選擇面額最大的,這樣每次獲得的都是局部最優的選擇,直到滿足