300. 最长上升子序列
生活随笔
收集整理的這篇文章主要介紹了
300. 最长上升子序列
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一個(gè)無序的整數(shù)數(shù)組,找到其中最長上升子序列的長度。
示例:
輸入: [10,9,2,5,3,7,101,18]
輸出: 4?
解釋: 最長的上升子序列是?[2,3,7,101],它的長度是 4。
說明:
可能會有多種最長上升子序列的組合,你只需要輸出對應(yīng)的長度即可。
你算法的時(shí)間復(fù)雜度應(yīng)該為?O(n2) 。
進(jìn)階: 你能將算法的時(shí)間復(fù)雜度降低到?O(n log n) 嗎?
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/longest-increasing-subsequence
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:
class Solution { public:int lengthOfLIS(vector<int>& nums) {if(nums.size() == 0) return 0;int len = nums.size();int dp[len];dp[0] = 1;int ma = 1, res = 1;for(int i = 1; i < len; ++i){ma = 1;for(int j = 0; j < i; ++j){if(nums[i] > nums[j]){ma = max(ma, dp[j] + 1);}}res = max(res, ma);dp[i] = ma;} return res;} };解法二:
?
總結(jié)
以上是生活随笔為你收集整理的300. 最长上升子序列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QQ飞车手游A车甜心狸想怎么获得
- 下一篇: 输精管不通属于男性不育吗