请教一个问题的快速算法?

suzeya123 2019-01-08 03:54:49
函数double [] MaxN(double A[], int N),A是一个大小m的一维数组,函数返回的也是一个大小m的一维数组,返回的数组第一位是从A的第一位往后数N个数里面的最大值,第二位是从A的第二位开始往后数N个数里面的最大值。。。。类推。最笨的办法是每次从A种截取N个数然后求最大值,这样至少要比较大概m*N次,有没有什么快速的方法?
...全文
115 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
竞天问 2019-02-12
  • 打赏
  • 举报
回复
引用 2 楼 hucailai 的回复:
提供一个思路,只需遍历数组一次:

从最后一个数开始,保存当前最大一个数,每往前走一个元素,先和最大的比,取最大的值。

这个好
636f6c696e 2019-02-12
  • 打赏
  • 举报
回复
思路正确但方法不可行,往前走一个元素,数据区间不光多了数据还少了数据
引用 2 楼 hucailai 的回复:
提供一个思路,只需遍历数组一次: 从最后一个数开始,保存当前最大一个数,每往前走一个元素,先和最大的比,取最大的值。
引用 3 楼 竞天问 的回复:
[quote=引用 2 楼 hucailai 的回复:] 提供一个思路,只需遍历数组一次: 从最后一个数开始,保存当前最大一个数,每往前走一个元素,先和最大的比,取最大的值。
这个好[/quote]
hucailai 2019-02-11
  • 打赏
  • 举报
回复
提供一个思路,只需遍历数组一次: 从最后一个数开始,保存当前最大一个数,每往前走一个元素,先和最大的比,取最大的值。
636f6c696e 2019-01-09
  • 打赏
  • 举报
回复
3个局部变量就可以搞定了,分别表示N个数里的最大值,第二大值、第三大值 每次循环,N个数会少一个数,多一个数,刷新这3个局部变量

33,006

社区成员

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

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