golang力扣leetcode 300.最长递增子序列

简介: golang力扣leetcode 300.最长递增子序列

300.最长递增子序列

300.最长递增子序列

题解

//state: dp[i]表示[0,i)的最长上升子序列

//function: dp[i] = max(dp[j])+1 —>nums[j]<nums[i] && j<i

//intialize:dp[i] = 1

//answer: max(dp[N])

代码

package main
func lengthOfLIS(nums []int) int {
  dp := make([]int, len(nums))
  for idx := range dp {
    dp[idx] = 1
  }
  for i := 1; i < len(nums); i++ {
    for j := 0; j < i; j++ {
      if nums[j] < nums[i] {
        dp[i] = max(dp[i], dp[j]+1)
      }
    }
  }
  result := 0
  for idx := range dp {
    result = max(result, dp[idx])
  }
  return result
}
func max(a, b int) int {
  if a > b {
    return a
  }
  return b
}
目录
相关文章
|
20天前
|
存储 算法 数据可视化
哈希表法快速求解最长连续序列 | 力扣128题详细解析
哈希表法快速求解最长连续序列 | 力扣128题详细解析
|
2天前
|
存储 算法
力扣经典150题第四十六题:最长连续序列
力扣经典150题第四十六题:最长连续序列
4 0
|
25天前
|
算法 Java Go
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
11 2
|
25天前
|
Java
贪心 -力扣860.柠檬水找零力扣2208.将数组和减半的最少操作次数力扣179.最大数力扣376.摆动序列
贪心 -力扣860.柠檬水找零力扣2208.将数组和减半的最少操作次数力扣179.最大数力扣376.摆动序列
|
25天前
|
算法 Java Go
【经典算法】LeetCode 69. x 的平方根(Java/C/Python3/Golang实现含注释说明,Easy)
【经典算法】LeetCode 69. x 的平方根(Java/C/Python3/Golang实现含注释说明,Easy)
10 1
|
25天前
|
算法 Java Go
【经典算法】LeetCode 64. 最小路径和(Java/C/Python3/Golang实现含注释说明,Easy)
【经典算法】LeetCode 64. 最小路径和(Java/C/Python3/Golang实现含注释说明,Easy)
13 1
|
25天前
|
算法 Java Go
【经典算法】LeetCode 35. 搜索插入位置(Java/C/Python3/Golang实现含注释说明,Easy)
【经典算法】LeetCode 35. 搜索插入位置(Java/C/Python3/Golang实现含注释说明,Easy)
9 0
|
2月前
leetcode代码记录(最长连续递增序列
leetcode代码记录(最长连续递增序列
21 2
|
16天前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-2
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
16天前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-1
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题