
package mainimport ( "fmt")func findNumberOfLIS(nums []int) int { dp := make([]int,len(nums)) count := make([]int,len(nums)) maxLength := 1 for i :=0;i<len(nums);i++{ dp[i] = 1 count[i] = 1 for j:=0;j<i;j++{ if nums[j]<nums[i] { if dp[j]+1>dp[i] { dp[i] = dp[j]+1 count[i] = count[j] }else if dp[j]+1==dp[i] { count[i] += count[j] } } } if maxLength < dp[i]{ maxLength = dp[i] } } var maxNum int for i := 0; i <= len(dp) - 1; i += 1{ if dp[i] == maxLength{ maxNum += count[i] } } return maxNum}func main() { fmt.Println(findNumberOfLIS([]int{1,3,5,4,7})) fmt.Println(findNumberOfLIS([]int{2,2,2,2,2}))}
