题解 | #合唱队#

合唱队

http://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4

package main import ( "fmt" )

func main() { var n int var dp []int for { _, err := fmt.Scan(&n) if err != nil { break } dp = make([]int, n) for i := 0; i < n; i++ { fmt.Scan(&dp[i]) } fmt.Println(hechangdui(dp)) } }

func hechangdui(s []int) int { dp1, dp2 := make([]int, len(s)), make([]int, len(s)) for i := 1; i < len(s); i++ { for j := 0; j < i; j++{ if s[i] > s[j] && dp1[i] < dp1[j]+1 { dp1[i] = dp1[j]+1 } } } for i := len(s)-2; i >= 0; i-- { for j := len(s)-1; j > i; j--{ if s[i] > s[j] && dp2[i] < dp2[j]+1 { dp2[i] = dp2[j]+1 } } } max := 1 for i := 0; i < len(s); i++ { if max < dp1[i]+dp2[i]+1 { max = dp1[i]+dp2[i]+1 } } return len(s)-max

}

全部评论

相关推荐

牛客765689665号:没有实习是硬伤,央国企看学历
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务