【发布时间】:2015-11-22 15:18:11
【问题描述】:
你如何在 O(n) 时间内解决这个问题?
给定一个未排序的整数数组,设计算法来转换数组,使整数被其右边最接近的更大整数替换。如果它的右边没有更大的整数,则整数保持不变。例如下面的整数数组
2 1 4 5 3 6 7 9 4 8
应该变成
4 4 5 6 6 7 9 9 8 8
【问题讨论】:
-
你确定有 O(n) 解决方案吗?
-
@sudomakeinstall2 有。算法其实很简单
-
@paul 如果你说的是orlp提供的算法,那应该是有误会了。
-
@cppgondnler 实际上非常接近。或者更准确地说,如果实施得当,您提出的算法应该完成这项工作,除了遍历和替换的元素需要额外的存储。
标签: arrays algorithm comparison