LeetCode已經是面試的一大難關,考驗面試者的邏輯思維與結構設計功底,我們將使用Kotlin語言來進行LeetCode的挑戰.
我們來練習幾題動態規劃的題目,就先從經典的最長遞增子序列開始.最長遞增子序列,Longest Increasing Subsequence,簡稱LIS,比較容易...
現在我們來用二分搜尋來解這題,數學推導太長了而且網上還蠻多的就先跳過… 我們用紙牌遊戲代替一下,這個規則就是 1.只能把排放到比目前牌面比較小的那疊 (圖) 2...
今天我們來看一題延伸題,在LeetCode上面難度為Hard 題目是這樣的: 有一種產品,名為俄羅斯套娃信封.一組產品裡面有數個不同大小的信封,並且可以層層收納...
我們再來做一題動態規劃問題吧.有點類似最長遞增子序列問題 題目是這樣的: 給定一個整數陣列nums,請在其中找到一個和最大的子陣列,然後返回其和. 例如輸入:n...
最長公用次序列(Longest Common Subsequence,簡稱LCS)是一題經典的面試題目,因為他的解法是一個典型的”二維”動態規劃,大部分比較困難...
這題也是Leetcode上面,Hard難度的題目.雖然表面上看起來很困難,實際解法也不容易想到,但是最後的解答卻精緻輕巧,很有趣 題目是這樣的: 給定兩個字串s...
我們知道要優化一個動態規劃問題,可以從兩個方向下手,一個是使用Memo把已經找過的答案存起來,另外一個就是使用DP Table 我們先從比較簡單的部分開始,使用...
子序列的問題通常都比子字串或是子陣列問題更加困難,因為子序列沒有要求要連續,而其餘兩者都要求要連續.有的時候連列舉一個暴力解都非常困難,更別說要得到演算法了 此...
迴文的定義,便是從頭或是尾念,都是相同的句子,例如說有名的”上海自來水來自海上”,便是回文的一種. 我們今天的題目就是要在一個字串中找到其最長的迴文子序列長度....
終於到了最後一天了,讓我們來複習一下到底學的了什麼東西吧. 動態規劃 一個動態規劃問題,可以分成三個重點1.重疊子問題 2.找到狀態轉移方程 3.優化成最佳子結...