golangfunc longestList(arr []int) int {
list := []int
for _, num := range arr {
l,r := 0, len(list)
for l < r {
mid = l + (r-l)/2
if list[mid] < num {
l = mid + 1
}else{
r = mid
}
}
if l = len(list) {
list = append(list, num)
}else{
list[l] = num
}
}
return len(list)
}
golangfunc lengthOfLIS(nums []int) int {
res := 0
n := len(nums)
dp := make([]int, n)
for i := 0;i < n;i++ {
dp[i] = 1
for j := 0; j < i;j++ {
if nums[j] < nums[i] {
dp[i] = max(dp[i], dp[j] + 1)
}
}
res = max(res, dp[i])
}
return res
}
func max(i, j int) int{
if i > j {
return i
}
return j
}
本文作者:曹子昂
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!