原创 LeetCode 49 同字符詞語分組 (java)

一、題目分析 和前面的兩個題一樣,這道題也採用hashmap來做 有兩種實現的方法,一個是,對數組的每一個字符串元素排序,排序後結果一樣的分爲一組,也就是說key是排序後的字符串,比如"aet" 第二種方法是統計每個字符串中的每個字符

原创 LeetCode 290 詞語模式 (java)

一、題目分析 其實我最先想的是遍歷兩個字符串,一個記錄單個字符出現的個數,一個記錄通過空格分開的每個單詞出現的個數 然後兩個數目一一對應,看是否相等 雖然是可行的,但是在網上看到更方便的一種做法,就是單個字符作爲hashMap的key

原创 LeetCoed 無重複字符的最長子串(java)

一、題目分析   分析: 最長子串,而不是最長子序列。子串是字符串連續的一段,子序列是可以不連續的 所以有一種方法叫做滑動窗口法,我記得左程雲老師講過,那個題是計算窗口內最大或者最小值的 在本題中,窗口一直向右移動,左邊緣也可以向右滑

原创 LeetCode 最長迴文串 (409 java)

一、題目分析 使用字符串中的字符,任意組合   二、java實現 class Solution { public int longestPalindrome(String s) { if (s == nul

原创 LeetCode 76 最小窗口子串(java)

一、題目分析 分析:就是在S中找出包括T的所有字符的最小窗口 ,要求時間複雜度是O(N) 所以有了之前滑動窗口的概念,這個題會好理解一點       值得注意的是 數量足夠:就是當前窗口中,begin位置的字符出現至少兩次,那麼爲

原创 leetcode 64最小路徑和(java medium 動態規劃)

由於前面已經做過了不少動態規劃了,所以這個題很快能夠找出狀態轉移方程 dp[i][j]=Min{dp[i-1][j],dp[i][j-1]}+arrays[i][j]  class Solution { public in

原创 leetcode 174 地牢遊戲(hard java 動態規劃)

    思路就是 dp[i][j]表示爲了達到右下角,至少有多少血量能夠在行走過程中至少保持一滴血 要從右下角開始向上推,因爲只有在右下角知道最少還剩一滴血,然後向上推,最小血量  java class Solution {

原创 leetcode 198 打家劫舍(java easy 動態規劃)

 找到規律,推導狀態轉移方程 分析子問題 面對第i家房子,如果打劫,那麼i-1家就不能進,那麼最大財務就是前i-2家累計財富+第i家打劫的財富 如果不打劫i家,那麼在第i家門口徘徊的時候,身上的最大錢財就是前i-1家非法獲得的財富 所

原创 LeetCode 重複的DNA序列(java)

一、題目分析    分析: 方法1:可以枚舉,將長度爲10的子串存入hashmap中,這樣其實這個題就是個easy的題   這個方法感覺太複雜了,我不想看了。 大致意思就是,編碼之後 ,通過位運算轉化的問題了     二、j

原创 leetcode 322 找零錢(java medium 動態規劃 一維dp )

 首先先理解思路 不能用暴力貪心,之前的找錢是1 2 5 10之類的生活中存在的錢,現在是任意未知貨幣 現在如果是 1 2 5 7 10組合14就會出現問題,貪心依次是10 2 2 1,四張就不對了,應該是7 7 兩張 然後就是狀態轉

原创 leetcode 53 最大子段和(easy java 動態規劃)

一 核心: 跟以前的dp不太一樣,這個需要換個思路 假設dp[i]表示以i爲結尾的最長子段的和  它和dp[i-1]的關係就是 dp[i]=max(dp[i-1]+nums[i],nums[i]) 意思就是  包括前面i-1計算出來的

原创 LeetCode 33 旋轉數組查找

一、題目分析  要求:時間複雜度,數組中沒有重複元素,nums是升序,但是可能以未知下標旋轉,查找target的位置 解決:使用二分法,但是要加上條件限制    如果不加改變繼續使用二分法,就會出現上述問題 ,怎麼加上限制條

原创 leetcode 34 區間查找

一、題目 分析:首先,要求了時間複雜度O(log n),說明暴力禁止 我們可以通過二分查找法確定左右區間邊界 但是不能同時找出左右邊界,我們可以先確定左邊界,再確定右邊界       class Solution { pu

原创 LeetCode 35 插入位置

一、題目分析  給定一個排序數組和一個目標值,如果能夠找到這個值,就返回值的座標,如果找不到,就返回值的插入位置的座標值 二、代碼實現(java) class Solution { public int searchIns

原创 LeetCode 課程安排 207(java)

一、題目  注意;輸入條件是鄰接表,而不是鄰接矩陣。假設沒有重複邊 題目分析:  題目是說,課程之間有依賴關係,必須完成一門之前,先完成它的依賴課程。 所以,如果有環的話,就不可能完成所有的課程。因此題目就是判斷,圖中是否有環。