300. Longest Increasing Subsequence
Given an unsorted array of integers, find the length of longest increasing subsequence.
Example:
Input: [10,9,2,5,3,7,101,18]
Output: 4
Explanation: The longest increasing subsequence is [2,3,7,101], therefore the length is 4.
Note:
There may be more than one LIS combination, it is only necessary for you to return the length.
Your algorithm should run in O(n2) complexity.
Follow up: Could you improve it to O(n log n) time complexity?
解题
func lengthOfLIS(nums []int) int {
dp := make([]int,len(nums))
res := 0
for i:=0;i<len(nums);i++ {
dp[i]=1
for j:=0; j <i;j++ {
if nums[i]>nums[j] {
dp[i]= int(math.Max(float64(dp[i]),float64(dp[j]+1)))
}
}
res = int(math.Max(float64(res),float64(dp[i])))
}
return res
}