LintCode 最长上升连续子序列
2017-11-03 20:17
218 查看
1.描述
给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。)
注意事项
time
样例
给定
给定
2.分析
题目说明很清晰,最长,上升,连续,子序列。
3.代码
class Solution {
public:
/*
* @param A: An array of Integer
* @return: an integer
*/
int longestIncreasingContinuousSubsequence(vector<int> &A) {
// write your code here
int i,j,k;
int cat=0;
int dp[100005];
for(i=0;i<A.size();i++)
dp[i]=1;
for(i=1;i<A.size();i++)
{
if(A[i]>A[i-1])
dp[i]=dp[i-1]+1;
}
for(i=0;i<A.size();i++)
{
cat=max(cat,dp[i]);
}
for(i=0;i<A.size();i++)
dp[i]=1;
for(i=1;i<A.size();i++)
{
if(A[i]<A[i-1])
dp[i]=dp[i-1]+1;
}
for(i=0;i<A.size();i++)
{
cat=max(cat,dp[i]);
}
return cat;
}
};
4.总结
最开始看到两个测试样例时看到【54213】出来【5421】,以为因为是子序列所以必须去掉一个,后来才意识到是因为不满足上升序列,一眼看过去很容易忽视是不是上升序列,体现在程序中是最简单的A[i]<A[j],很多时候直观的表现不容易观察,程序确是忠实的为我们写下的每一句代码工作。
由于上升序列可以是从小到大,也可以是从大到小,因此类似的代码只需要更改判断条件A[i]<A[j]和A[i]>[j]即可。
给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。)
注意事项
time
样例
给定
[5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为
[5, 4, 2, 1], 返回
4.
给定
[5, 1, 2, 3, 4], 其最长上升连续子序列(LICS)为
[1, 2, 3, 4], 返回
4.
2.分析
题目说明很清晰,最长,上升,连续,子序列。
3.代码
class Solution {
public:
/*
* @param A: An array of Integer
* @return: an integer
*/
int longestIncreasingContinuousSubsequence(vector<int> &A) {
// write your code here
int i,j,k;
int cat=0;
int dp[100005];
for(i=0;i<A.size();i++)
dp[i]=1;
for(i=1;i<A.size();i++)
{
if(A[i]>A[i-1])
dp[i]=dp[i-1]+1;
}
for(i=0;i<A.size();i++)
{
cat=max(cat,dp[i]);
}
for(i=0;i<A.size();i++)
dp[i]=1;
for(i=1;i<A.size();i++)
{
if(A[i]<A[i-1])
dp[i]=dp[i-1]+1;
}
for(i=0;i<A.size();i++)
{
cat=max(cat,dp[i]);
}
return cat;
}
};
4.总结
最开始看到两个测试样例时看到【54213】出来【5421】,以为因为是子序列所以必须去掉一个,后来才意识到是因为不满足上升序列,一眼看过去很容易忽视是不是上升序列,体现在程序中是最简单的A[i]<A[j],很多时候直观的表现不容易观察,程序确是忠实的为我们写下的每一句代码工作。
由于上升序列可以是从小到大,也可以是从大到小,因此类似的代码只需要更改判断条件A[i]<A[j]和A[i]>[j]即可。
相关文章推荐
- Lintcode最长上升连续子序列
- [Lintcode 397] 最长上升连续子序列(Python)
- 最长上升连续子序列(LintCode)
- LintCode:最长上升连续子序列
- LintCode(easy)最长上升连续子序列
- lintcode——最长上升连续子序列
- lintCode刷题--最长上升连续子序列
- java最长上升连续子序列(LICS)
- 最长上升连续子序列
- 最长上升连续子序列(解题代码)
- LintCode 76 最长上升序列
- “最长上升子序列,最大连续子序列和,最长公共子串”的Java实现
- lintcode-397-最长上升连续子序列
- LintCode刷题——最长上升连续子序列
- lintcode397最长上升连续子序列(动态规划easy)
- lintcode-最长上升子序列-76
- 最长上升连续子序列
- 【LintCode】最长上升序列(Longest Increasing Sequence)
- 最长上升连续子序列-LintCode
- “最长上升子序列,最大连续子序列和,最长公共子串”的Java实现