博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 300. Longest Increasing Subsequence
阅读量:6295 次
发布时间:2019-06-22

本文共 946 字,大约阅读时间需要 3 分钟。

Given an unsorted array of integers, find the length of longest increasing subsequence.

For example,

Given [10, 9, 2, 5, 3, 7, 101, 18],
The longest increasing subsequence is [2, 3, 7, 101], therefore the length is 4. Note that 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.

大致题意

在数组里面找到最长递增子序列

题解

问题类型:dp,二分

设 dp[i] 表示选择第 i 个元素的递增子序列中最长的长度

动态转移方程:dp[i] = max(dp[j] + 1, dp[i])

题解如下

class Solution {public:    int lengthOfLIS(vector
& nums) { if (!nums.size()) { return 0; } vector
dp(nums.size(), 1); int res = 1; for (int i = 1; i < nums.size(); i++) { for (int j = 0; j < i; j++) { if (nums[j] < nums[i]) { dp[i] = max(dp[j] + 1, dp[i]); } } res = max(dp[i], res); } return res; }};

转载地址:http://rpvta.baihongyu.com/

你可能感兴趣的文章
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>
设计模式01:简单工厂模式
查看>>
项目经理笔记一
查看>>
Hibernate一对一外键双向关联
查看>>
mac pro 入手,php环境配置总结
查看>>