动态规划之最长单调递增子序列

GmAmeise 2010-05-22 05:52:25
最近动态规划,又遇到一个与以往求最长单调子序列不一样的题目。对于一个数组A,现在要求的最长单调子序列必须满足:shuzu A[N]
A[i]<A[i+1]<A[i+2]<...<A[j] {1=<i,j<=n
比如一个数组是 1 2 3 -4 5 6 7 他的最长单调子序列 是 -4 5 6 7 。并不是以往的 1 2 3 5 6 7 。
求高手给我答案!
...全文
537 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AndyZhang 2010-05-22
  • 打赏
  • 举报
回复

数组num[n],
max=0,最大长度。
sum,当前长度

sum=0;
for(i=0;i<n;i++)
{
while(num[i+1]>=num[i])
{
sum++;
i++;
}

if(max<sum)
max=sum;
}

贪心的关键代码
绿色夹克衫 2010-05-22
  • 打赏
  • 举报
回复
这个O(n)就可以了,挺简单的(相比原来的递增子序列问题),真的说出了答案,LZ会后悔没有自己多想一下的。
GmAmeise 2010-05-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhhp0754 的回复:]

用贪心,从后往前遍历。
[/Quote]
老大太笼统了。。。
diablox0147 2010-05-22
  • 打赏
  • 举报
回复
很简单。。。数过来就可以了。。。
zhhp0754 2010-05-22
  • 打赏
  • 举报
回复
用贪心,从后往前遍历。
hellodota121 2010-05-22
  • 打赏
  • 举报
回复
直接数过来不就得了么
plumstar 2010-05-22
  • 打赏
  • 举报
回复
这样不更简单,用不着DP

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧