Leetcode 300 最長遞增子串行

2022-06-19 02:36:14 字數 997 閱讀 8966

給你乙個整數陣列 nums ,找到其中最長嚴格遞增子串行的長度。

子串行是由陣列派生而來的序列,刪除(或不刪除)陣列中的元素而不改變其餘元素的順序。

例如,[3,6,2,7] 是陣列 [0,3,1,6,2,2,7] 的子串行。

示例 1:

輸入:nums = [10,9,2,5,3,7,101,18]

輸出:4

解釋:最長遞增子串行是 [2,3,7,101],因此長度為 4

示例 2:

輸入:nums = [0,1,0,3,2,3]

輸出:4

示例 3:

輸入:nums = [7,7,7,7,7,7,7]

輸出:1

首先使用動態規劃的思想,雙重迴圈,定義 陣列dp 為動態規劃的陣列,dp[i]為考慮前i個元素,以第i個數字結尾的最長上公升子串行的長度,注意nums[i]必須被選取。

外層的每次一次迴圈,都依次比較從0i的所有數,是否小於當前值num[i],假設比較的數為num[j],如果小於,那麼num[i] =math.max(1,dp[j] + 1),1 是最低值,dp[j]標識num[j]的最長上公升子串行

class solution 

}max = math.max(dp[i],max);

}return max;

}}

class solution elseelse

}d[pos + 1] = nums[i];}}

return max;

}}

LeetCode 300 最長遞增子串行

300.最長遞增子串行 我們記狀態 dp i dp i dp i 表示以第 i ii 個元素結尾的最長上公升子串行的長度,那麼專一方程就可以定義為 dp i m ax d p j 1 0 j ndnu ms j ms i dp i max dp j 1 0 leq jdp i max dp j 1 ...

LeetCode300 最長遞增子串行

題目鏈結 題目描述 給你乙個整數陣列 nums 找到其中最長嚴格遞增子串行的長度。子串行是由陣列派生而來的序列,刪除 或不刪除 陣列中的元素而不改變其餘元素的順序。例如,3,6,2,7 是陣列 0,3,1,6,2,2,7 的子串行。示例 輸入 nums 10,9,2,5,3,7,101,18 輸出 ...

leetcode 300 最長遞增子串行

思路,動態規劃 狀態含義 dp i 第i個元素所表示的最大的遞增序列長度 轉移方程 第i個是否可以放在第j個後面 1.可以放,dp i max dp i dp j 1 2.不可以放,跳過 遍歷dp找最大 class solution max max max,dp i return max inclu...