数组中删除最少元素使其先增后减

shun_qizi_ran 2011-04-22 10:11:29
一道笔试题目:

在一个数组中删除最少数目的元素是其剩余元素先严格单调递增后严格单调递减(假设如果数组本身是严格单调的也符合条件)

例如:9,5,6,7,5,6,5,3,1
可删除9和5(第二个)即可:5,6,7,6,5,3,1
感觉挺复杂的,不知哪位大师给点指导
...全文
350 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
waxili 2012-06-28
  • 打赏
  • 举报
回复
动态规划问题,代码可以参考百度空间dataalgorithm,我那个问题是这个问题的子问题。
书虫 2011-04-24
  • 打赏
  • 举报
回复
用递归去做:
当前项大于已排好的最小项时,放弃,进入下一项;
当小于时,整体计数+1,进入下一项;
最后一项时,比较当前计数和全局最佳计数,如果大于替代,如果小于退出!
基本就是这个过程!
shun_qizi_ran 2011-04-24
  • 打赏
  • 举报
回复
再顶一下!求解
xiaopoy 2011-04-24
  • 打赏
  • 举报
回复
我感觉最麻烦的地方在怎么判断当前的结果是否就是最优解。

要不然枚举所有情况出来,具体的枚举算法优化不是很容易做。
shun_qizi_ran 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ricky1217 的回复:]
支付宝?动态规化,细节也不清楚
[/Quote]

嗯嗯!呵呵,没思路
ricky1217 2011-04-22
  • 打赏
  • 举报
回复
支付宝?动态规化,细节也不清楚
xmu_才盛 2011-04-22
  • 打赏
  • 举报
回复
没思路, 友情up, 等待其他人解决,, 问题挺有意思,,, 期待看到简练的算法
LAIER903 2011-04-22
  • 打赏
  • 举报
回复
记下第一个和第二个的单调关系 用来检验第二个和第三个 出现不符合的情况 再取第四个 判断第三和第四的单调关系 将3个单调关系对比后,去掉不适合的那一个 删掉这个关系中的元素 从第四个元素开始 依次进行 (个人解法)

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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