数组中删除最少数目的元素使其剩余元素先严格单调递增后严格单调递减

shun_qizi_ran 2011-04-22 12:51:04
昨天参加了一个笔试,最后一道笔试题目:

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

例如:9,5,6,7,5,6,5,3,1
可删除9和5(第二个)即可:5,6,7,6,5,3,1

感觉挺复杂的,不知哪位大师给点指导
...全文
1408 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dylan326-QAZ 2011-10-19
  • 打赏
  • 举报
回复
lz可以这样考虑

首先折点不确定 需要循环试 设为a[i]

那么左侧0~i 求出最长递增子序列(动态规划方法)

i~a.length-1 求出最长递减子序列(动态规划方法)

循环执行上述过程 返回剔除后的数组长度

长度最长即为所需
shun_qizi_ran 2011-04-22
  • 打赏
  • 举报
回复
继续考虑……
shun_qizi_ran 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 majia2011 的回复:]

memmove

没看出来哪里复杂,貌似很多人只会memcpy
[/Quote]

什么意思呢?
pathuang68 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 woweiwokuang0000 的回复:]

引用 1 楼 pathuang68 的回复:

这题不难。
楼主给出的示例结果:5,6,7,6,5,3,1
既谈不上严格(所谓严格就是不能有重复的数字),也谈不上递增或者递减。

9,5,6,7,5,6,5,3,1删除最少的数字,使其严格单调的话,结果应该是:
9,5,6,7,5,6,5,3,1


你没看清楚题目啊,是结果里面前面一部分严格递增,后一部分严格递减
[/Quote]
嗯,你说的对,的确没有看清楚。
shun_qizi_ran 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pathuang68 的回复:]

这题不难。
楼主给出的示例结果:5,6,7,6,5,3,1
既谈不上严格(所谓严格就是不能有重复的数字),也谈不上递增或者递减。

9,5,6,7,5,6,5,3,1删除最少的数字,使其严格单调的话,结果应该是:
9,5,6,7,5,6,5,3,1
[/Quote]

你没看清楚题目啊,是结果里面前面一部分严格递增,后一部分严格递减
zc806 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 woweiwokuang0000 的回复:]
昨天参加了一个笔试,最后一道笔试题目:

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

例如:9,5,6,7,5,6,5,3,1
可删除9和5(第二个)即可:5,6,7,6,5,3,1

感觉挺复杂的,不知哪位大师给点指导
[/Quote]

不对吧,LZ的意思是去除最少的数,然后让数组,递增之后又是递减。

我想了个办法,先将各个递增或递减的数组反拆出来,然后对比相邻数组的首和尾大小,删除数组SIZE小的首或者尾即可
majia2011 2011-04-22
  • 打赏
  • 举报
回复
memmove

没看出来哪里复杂,貌似很多人只会memcpy
pathuang68 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pathuang68 的回复:]

这题不难。
楼主给出的示例结果:5,6,7,6,5,3,1
既谈不上严格(所谓严格就是不能有重复的数字),也谈不上递增或者递减。

9,5,6,7,5,6,5,3,1删除最少的数字,使其严格单调的话,结果应该是:
9,5,6,7,5,6,5,3,1
[/Quote]
sorry,标记错了,应该是
9,5,6,7,5,6,5,3,1
pathuang68 2011-04-22
  • 打赏
  • 举报
回复
这题不难。
楼主给出的示例结果:5,6,7,6,5,3,1
既谈不上严格(所谓严格就是不能有重复的数字),也谈不上递增或者递减。

9,5,6,7,5,6,5,3,1删除最少的数字,使其严格单调的话,结果应该是:
9,5,6,7,5,6,5,3,1

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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