已知序列a1,a2,…,an,试设计一算法,从中找出一子序列ai1 <= ai2 <= … <= aik,使k达到最大。
C# codes as below,
class Program
{
static void Main(string[] args)
{
GetMaxString(new int[]{1,2,3,2,3,1});
Console.ReadKey();
}
static void GetMaxString(int[] array)
{
int startIndex = 0;
int maxLength = 1;
int currentLength = 1;
for (int i = 0; i < array.Length-1; i++)
{
if (array[i] <= array[i + 1])
{
currentLength++;
if (currentLength > maxLength)
{
maxLength = currentLength;
startIndex = i - maxLength + 2;
}
}
else
{
currentLength = 1;
}
}
for (int i = startIndex; i < startIndex + maxLength; i++)
{
Console.Write("{0} ", array[i]);
}
Console.WriteLine();
}
}
Output:
1 2 3
分享到:
相关推荐
动态规划最长子序列
解决最长子序列的问题,包括问题描述,分析,解决和全部代码,拥有详细注释。
主要介绍了Java实现求数组最长子序列算法,涉及java针对数组的递归遍历、判断相关操作技巧,需要的朋友可以参考下
给定一个序列,求和为k的最长子序列和最长子序列长度,c语言帮忙提供一个算法 输入一个序列,如: 1,5,6,4,2,3 输入一个整数,如:7 输出: 1 4 2 3 上述例子和为7的子序列有1,4,2 和 3,4 和 2,5 和 1,6 最长子...
最长子序列最长子序列最长子序列最长子序列最长子序列最长子序列最长子序列最长子序列最长子序列
NULL 博文链接:https://lisajoy512.iteye.com/blog/1231823
寻找最长公共子序列的C++算法,简洁、高效。输入两个长度可控的序列,输出其公共的最长子序列。
分治策略求解最大子数组问题
An,求这个序列中最长的递减子序列的长度M, 以及该序列可以划分成这种子序列的个数N 如序列: 300 250 252 275 200 138 245 折分成的子序列分别为 300 275 200 138 252 245 250 其中最长序列为: 300 275 200 138 ...
关于用nlogn的最长子序列算法,在网上摘录的
最长子序列LCS算法,用于处理最长公共字串问题。 两个序列的LCS问题包含两个序列的前缀的LCS,因此,LCS问题具有最优子结构性质。在设计递归算法时,不难看出递归算法具有子问题重叠的性质。 设C[i,j]C[i,j]...
找到一个序列中的最长子序列的元素数。 VC实现
最长子序列 什么是最长递增子序列呢? 问题描述如下: 设L=,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=,ak2,…,akm>,其中k1…且aK1…。求最大的m值
java implement lcs
题目大意:求最长子序列和。给定一个至少包含一个数字的数组,查找最长子序列和。 例如:给定的是数组[−2, 1, −3, 4, −1, 2, 1, −5, 4],最大连续子序列是[4, -4, 2, 1],最长子序列和是6。
自己写的一点小程序!关于算法分析的! 最长子序列问题!
易语言源码易语言取最长子序列源码.rar
最长子序列之 LCSlength算法详解.doc
包含三个算法问题:背包问题 最长子序列问题 矩阵相乘 为java代码