最长单调递增子序列问题 设计一个O(n2)复杂度的算法,找出由n个数组成的序列的最长单调递增子序列
2019-05-15 10:32
507 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42362440/article/details/90231170
算法设计 最长单调递增子序列问题 设计一个O(n2)复杂度的算法,找出由n个数组成的序列的最长单调递增子序列
源代码:
#include "stdafx.h" #include<stdio.h> int main() { int max = 0, count = 1; int b, c; int a[] = { 2,1,4,7,8,-1,20,-7,-3,-2,1,5 }; int n = sizeof(a) / sizeof(int); for (int i = 0; i < n; i++) { b = a[i]; for (int j = i + 1; j < n; j++) { if (b < a[j]) { b = a[j]; count++; } else break; } if (max < count) { max = count; c = i; } count = 1; } printf("%d ", a[c]); b = a[c]; for (int i = c + 1; i < n; i++) { if (b < a[i]) { b = a[i]; printf("%d ", b); } else break; } return 0; }
相关文章推荐
- 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。
- 算法_动态规划_最长单调递增子序列问题(O(nlogn)的时间复杂度)
- 二叉排序树中,令f = (最大值+最小值) / 2,设计一个算法, 找出距离f值最近、大于f值的结点。复杂度不能为O(n2)。
- 找出由n个数组成的序列内最长的递增子序列
- 一棵排序二叉树,令 f=(最大值+最小值)/2, 设计一个算法,找出距离f 值最近、大于f 值的结点。 复杂度如果是O(n2)则不得分
- 算法导论 习题15.4-5 15.4-6 找出一个n个数的序列中最长的单调递增子序列
- 找出n个数组成的最长单调递增子序列( 动态规划O(nlogn) )
- 一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。 复杂度如果是O(n2)则不得分。
- 一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。复杂度如果是O(n2)则不得分。
- 利用动态规划找出最长公共单调递增子序列
- 算法导论15.4-6 求一个n个数的序列的最长单调递增子序列 O(n*logn)
- 最长单调递增子序列-LIS问题
- 最长单调递增子序列问题
- 输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应输出0(表示无解)。1<=18,-10<=Si<=10
- 最长单调递增子序列问题
- 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
- 求一个序列中的最长严格递增子序列。
- 一棵排序二叉树(即二叉搜索树BST),令 f=(最大值+最小值)/2,设计一个算 //法,找出距离f值最近、大于f值的结点。复杂度如果是O(n2)则不得分。
- 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱). 第二解
- 【动态规划】LIS最长单调递增子序列 logn算法 并且输出子序列