zoukankan      html  css  js  c++  java
  • Leetcode300. Longest Increasing Subsequence最长上升子序列

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

    示例:

    输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。

    说明:

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

    class Solution {
    public:
    	int lengthOfLIS(vector<int>& nums) 
    	{
    		int len = nums.size();
    		if (len == 0)
    			return 0;
    		vector<int> dp(len , 1);
    		for (int i = 0; i < len; i++)
    		{
    			for (int j = 0; j < i; j++)
    			{
    				if (nums[i] > nums[j])
    				{
    					dp[i] = max(dp[j] + 1, dp[i]);
    				}
    			}
    		}
    		int MAX = 1;
    		for (int i = 0; i < len; i++)
    		{
    			MAX = max(MAX, dp[i]);
    		}
    		return MAX;
    	}
    };
  • 相关阅读:
    函数对象与闭包
    20.03.19作业
    关键字参数,名称空间和作用域
    作业03.18
    函数第二天
    20.03.17作业
    文件
    20.01.16作业
    前端基础
    前端知识(二)
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433800.html
Copyright © 2011-2022 走看看