LintCode: Longest Increasing Continuous subsequence

简介:

C++

双向递推

空间O(1)

时间O(n)

复制代码
 1 class Solution {
 2 public:
 3     /**
 4      * @param A an array of Integer
 5      * @return  an integer
 6      */
 7     int longestIncreasingContinuousSubsequence(vector<int>& A) {
 8         // Write your code here
 9         int n = A.size();
10         if ( n == 1 || n == 0) {
11             return n;
12         }
13         int dp;
14         int ans = 1;
15         //>>>>>>>
16         dp = 1;
17         for (int i=1; i<=n; ++i) {
18             dp = A[i]>=A[i-1]?dp+1:1;
19             ans = max(dp, ans);
20         }
21         //<<<<<<<
22         dp = 1;
23         for (int i=n-2; i>=0; --i) {
24             dp = A[i]>=A[i+1]?dp+1:1;
25             ans = max(dp, ans);
26         }
27         return ans;
28     }
29 };
复制代码

 

本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/p/5006811.html,如需转载请自行联系原作者

相关文章
Leetcode 516. Longest Palindromic Subsequence
找到一个字符串的最长回文子序列,这里注意回文子串和回文序列的区别。子序列不要求连续,子串(substring)是要求连续的。leetcode 5. Longest Palindromic Substring就是求连续子串的。
47 0
|
26天前
|
算法
动态规划算法学习四:最大上升子序列问题(LIS:Longest Increasing Subsequence)
这篇文章介绍了动态规划算法中解决最大上升子序列问题(LIS)的方法,包括问题的描述、动态规划的步骤、状态表示、递推方程、计算最优值以及优化方法,如非动态规划的二分法。
59 0
动态规划算法学习四:最大上升子序列问题(LIS:Longest Increasing Subsequence)
|
算法
LeetCode 300. Longest Increasing Subsequence
给定一个无序的整数数组,找到其中最长上升子序列的长度。
52 0
LeetCode 300. Longest Increasing Subsequence
|
算法
LeetCode 334. Increasing Triplet Subsequence
给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1, 使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。
90 0
LeetCode 334. Increasing Triplet Subsequence
|
存储
LeetCode 329. Longest Increasing Path in a Matrix
给定一个整数矩阵,找出最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。
69 0
LeetCode 329. Longest Increasing Path in a Matrix
|
算法
LeetCode 128. Longest Consecutive Sequence
给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。
88 0
LeetCode 128. Longest Consecutive Sequence
【LeetCode】Increasing Triplet Subsequence(334)
  Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array.
100 0
|
人工智能
POJ 2533 Longest Ordered Subsequence
POJ 2533 Longest Ordered Subsequence
107 0