Leetcode 673 最長遞增子串行的個數

2021-10-03 05:20:56 字數 882 閱讀 2856

給定乙個未排序的整數陣列,找到最長遞增子串行的個數。

示例 1:

輸入: [1,3,5,4,7]

輸出: 2

解釋: 有兩個最長遞增子串行,分別是 [1, 3, 4, 7] 和[1, 3, 5, 7]。

示例 2:

輸入: [2,2,2,2,2]

輸出: 5

解釋: 最長遞增子串行的長度是1,並且存在5個子序列的長度為1,因此輸出5。

注意: 給定的陣列長度不超過 2000 並且結果一定是32位有符號整數。

動態規劃

現在問題是求最長遞增序列的個數,我們維護兩個陣列

len[i],存放以i為遞增序列尾部元素的最長序列長度(注意是最長序列)

cnt[i],存放以i為遞增序列尾部元素的最長序列個數(注意是最長序列)

用乙個雙重迴圈,對於每乙個數num[i],試試能不能從i之前的數找到乙個遞增序列。

比如:1 2 3 5 4 7

對於4,在前面的數中和4構成遞增序列的有1,2,3,然後分析以1,2,3為結尾的最長序列長度,其中選擇乙個最長的然後加一作為當前的最長序列長度,如果最長序列有多個,那麼當前的最長序列個數就是前面幾個最長序列長度的和。

class

solution

else

if(len[i]

==len[j]+1

)}}}

int max_len=

0,res=0;

for(

int t:len)max_len=math.

max(max_len,t)

;for

(int i=

0;ireturn res;

}}

leetcode 673 最長遞增子串行的個數

給定乙個未排序的整數陣列,找到最長遞增子串行的個數。示例 1 輸入 1,3,5,4,7 輸出 2 解釋 有兩個最長遞增子串行,分別是 1,3,4,7 和 1,3,5,7 示例 2 輸入 2,2,2,2,2 輸出 5 解釋 最長遞增子串行的長度是1,並且存在5個子序列的長度為1,因此輸出5。分析 舉個...

LeetCode 673 最長遞增子串行的個數

給定乙個未排序的整數陣列,找到最長遞增子串行的個數。示例 1 輸入 1,3,5,4,7 輸出 2 解釋 有兩個最長遞增子串行,分別是 1,3,4,7 和 1,3,5,7 示例 2 輸入 2,2,2,2,2 輸出 5 解釋 最長遞增子串行的長度是1,並且存在5個子序列的長度為1,因此輸出5。dp i ...

leetcode673 最長遞增子串行的個數

題目 這道題有點貪心?最優規劃?動態規劃?我也不知道叫啥了。就是從前往後算,後者的計算需要用到前者的值 原本想法,找到各個點的當前最長長度,找到最長的幾個值,然後倒推,後來覺得倒推太費時間,能不能在取最長值的時候,就把解拿到 就有了下面的 如果只要求最長長度 只需要int maxs new int ...