AcWing 895. GoLang - Dynamic Programming, 2-Dimensional
原题链接
简单
作者:
idiotleon
,
2020-12-26 08:58:31
,
所有人可见
,
阅读 387
package main
import "fmt"
const N = 1000 + 7
func main(){
nums := make([]int, N)
dp := make([]int, N)
var n int
fmt.Scanf("%d", &n)
for i := 1; i <= n; i++ {
fmt.Scan(&nums[i])
}
for hi := 1; hi <= n; hi++{
dp[hi] = 1
for lo := 1; lo < hi; lo++ {
if nums[lo] < nums[hi] {
if 1 + dp[lo] > dp[hi] {
dp[hi] = 1 + dp[lo]
}
}
}
}
var longest int = 1
for idx := 1; idx <= n; idx++ {
if dp[idx] > longest{
longest = dp[idx]
}
}
fmt.Println(longest)
}