原创 LeetCode 300. Longest Increasing Subsequence(最長遞增子序列)

問題描述 Given an unsorted array of integers, find the length of longest increasing subsequence. For example, Given

原创 LeetCode 140. Word Break II

問題描述 地址 問題分析 該問題是 LeetCode 139. Word Break 的進階,139是判斷能否分割,是一個DP問題(暴力dfs會TLE),而該題是返回分割的具體可能性,是 DFS + 回溯的問題(也有DP的

原创 LeetCode 322. Coin Change

問題描述 地址 問題描述 經典的湊硬幣問題:給定不同面值的硬幣,問至少需要多少枚硬幣,可以湊成指定的金額。如果無法湊成,返回 -1,注意,每一硬幣可以無限次使用。 因爲每一硬幣可以無限次使用,所以這是一個完全揹包問題,同時

原创 LeetCode 122. Best Time to Buy and Sell Stock II

問題描述 地址 問題分析 該題中的股票可以無限次買入賣出,但實際上最大收益是相鄰數字的差值的累加和。 注意 d - a = d - c + c - a 代碼實現 class Solution { public

原创 LeetCode 121. Best Time to Buy and Sell Stock

問題描述 地址 問題分析 本質上是求數組中前後兩個數字的最大差值。類似於求連續數組的最大和問題,是一個根據當前狀態的局部最優和上一狀態的全局最優求當前全局最優的過程,然後下一狀態的局部最優又是根據當前狀況的局部或者全局最優

原创 LeetCode 91. Decode Ways

問題描述 地址 問題分析 將給定數字字符串譯碼成字母字符串,看能有多少種譯碼情況 和 LeetCode 62. Unique Paths 類似,是統計可能性情況個數類型的題目,先從遞歸入手,然後想動態規劃。 譯碼情況的問題

原创 LeetCode 213. House Robber II

問題描述 地址 問題分析 該題是 LeetCode 198. House Robber 進階題,基本方法還是一樣, 該題是把數組看成一個環,數組的首部和尾部同樣也有鄰居關係,不能同時選擇。 方法: 既然首部和尾部不能同時選

原创 LeetCode 494. Target Sum

問題描述 地址 問題分析 一看是統計所有可能性個數問題,便知是用動態規劃。 先從暴力遞歸入手,int countWays(int[] nums, int i, int target) 返回 nums[i ~ end] 能否

原创 LeetCode 474. Ones and Zeroes

問題描述 Example 1 : Input: Array = {“10”, “0001”, “111001”, “1”, “0”}, m = 5, n = 3 Output: 4 Explanation: T

原创 LeetCode 343. Integer Break

問題描述 Given a positive integer n, break it into the sum of at least two positive integers and maximize the product

原创 LeetCode 337. House Robber III

問題描述 地址 問題分析 該題是 LeetCode 198. House Robber 和 LeetCode 213. House Robber II 的進階,只不過形狀換成了二叉樹,而且解決方法不再是動態規劃,而是 DF

原创 LeetCode 518. Coin Change 2

問題描述 地址 地址分析 類似於 LeetCode 322. Coin Change , 322是求所有可能性中的最少硬幣數,是一個最優子結構問題。而該題是統計所有可能性(方法)的個數,至於LeetCode 39. Com

原创 LeetCode 377. Combination Sum IV

問題描述 地址 問題分析 該題類似於排列問題,一個元素可以使用多次。而 LeetCode 518. Coin Change 2 類似於組合問題,同樣一個元素可以使用多次,兩題都是統計可能性的次數,因爲該題還要考慮順序,所以

原创 LeetCode 63. Unique Paths II

問題描述 地址 問題分析 LeetCode 62. Unique Paths 的進階題,只不過多了一個障礙物的概念,多加一個判斷即可。 代碼實現 遞歸(TLE) public int uniquePathsW

原创 LeetCode 416. Partition Equal Subset Sum

問題描述 地址 問題分析 給定一個非空正整數數組,能否將數組分成兩部分(子集),使兩部分和相等。本質上就是在一個數組中取任意個數相加,能否加出 sum/2,是一個簡化版的揹包問題。 首先,如果 sum爲奇數,肯定找不出這樣