給定乙個無序的整數陣列,找到其中最長上公升子串行的長度。
示例:輸入: [10,9,2,5,3,7,101,18]
輸出: 4
解釋: 最長的上公升子串行是 [2,3,7,101],它的長度是 4。
說明:可能會有多種最長上公升子串行的組合,你只需要輸出對應的長度即可。演算法的時間複雜度應該為 o(n^2) 。
#include
#include
#include
#include
#include
using
namespace std;
intmain()
int dp[n]
[n];
memset
(dp,0,
sizeof
(dp));
for(
int i=
0;i) dp[i]
[j]=
max(dp[i]
[j-1
],dp[i]
[j]);}
else
if(a[i]
&&ielse
}else}}
}//cout[n-1];
return0;
}/*10 9 2 5 3 7 101 18
10 0 0 0 0 0 0 2 2
9 0 0 0 0 0 0 2 2
2 0 0 0 2 2 3 4 4
5 0 0 0 2 2 3 4 4
3 0 0 0 2 2 3 4 4
7 0 0 0 2 2 3 4 4
101 0 0 0 2 2 3 4 4
18 0 0 0 2 2 3 4 4
*/
最長上公升子串行的長度
描述 在一條單車道的公路上有n輛汽車行駛,從前向後第i輛車的最高速度是vi。所有車輛都會盡量保持最高速度行駛。不過由於只有單車道,所以當後方快車追上前方慢車後,無法超車,只能降速跟在慢車後面。於是經過足夠長時間 足夠後方快車追上前方慢車 的行駛後,某些車輛會聚成一隊以相同的速度向前行駛。我們把這些聚...
最長上公升子串行 LIS 長度
屬於簡單的經典的dp,求最長上公升子串行 lis 先研究了o n 2 的思路。令a i 表示輸入第i個元素,d i 表示從a 1 到a i 中以a i 結尾的最長子序列長度。對於任意的0 j i 1,如果a j a i 則a i 可以接在a j 後面形成乙個以a i 結尾的新的最長上公升子串行。對於...
最長上公升子串行求長度
普通dp 複雜度o 2 1 include 2 using namespace std 34 const int n 1010 5 inta n dp n n 67 intmain 1819 int res 0 20 for int i 1 i n i 21 res max res,dp i 222...