糖逗 发表于 2020-4-18 17:46:49

C++刷leetcode(300. 最长上升子序列)【动态规划】【max_element】

本帖最后由 糖逗 于 2020-4-20 18:55 编辑

题目描述:
给定一个无序的整数数组,找到其中最长上升子序列的长度。

示例:

输入:
输出: 4
解释: 最长的上升子序列是 ,它的长度是 4。
说明:

可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。
你算法的时间复杂度应该为 O(n2) 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-increasing-subsequence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;


int lengthOfLIS(vector<int>& nums) {
    int len = nums.size();
    if(len == 0) return 0;
    vector<int> dp(len, 0);
    for(int i = 0; i < len; i++){
      dp = 1;
      for(int j = 0; j < i ; j++){
            if(nums < nums){
                dp = max(dp, dp + 1);
            }
      }
    }
    return *max_element(dp.begin(), dp.end());

}

int main(void){
        vector<int> input;
        int number;
        while(cin >> number){
                input.push_back(number);
        }
        cout << lengthOfLIS(input) << endl;

       
       
        return 0;
}

注意事项:
1.参考链接:max_elementhttps://blog.csdn.net/qq_41970098/article/details/87884651
页: [1]
查看完整版本: C++刷leetcode(300. 最长上升子序列)【动态规划】【max_element】