题目
给定长度为N的数组A[0...N-1],求递增且连续数字最长的子数组。
如数组:1,2,3,34,56,57,58,59,60,61,99,121的连续数字最长的一段位56,57,58,59,60,61.
代码
int MaxSequence(const int* a, int size, int& from, int& to)
{
int* p = new int[size];
int i;
for (i = 0; i < size; i++)
{
p[i] = 1;
}
int m = 1;
for (i = 1; i < size; i++)
{
if (a[i] - a[i - 1] == 1)
{
p[i] += p[i-1];
m = max(p[i], m);
to = i;
}
}
from = to - m + 1;
delete[] p;
return m;
}
本文介绍了一种算法,用于从给定数组中找出最长的递增连续子数组,并提供了具体的实现代码。通过动态规划思想,该算法能有效地解决这一问题。
2047

被折叠的 条评论
为什么被折叠?



