一个数组的算法问题

michael122 michael122 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
鉴于算法版人气不旺, 把C++版的一个算法问题转过来,看看有没有好的解决办法
原帖地址:
http://topic.csdn.net/u/20100623/09/dd25166f-bac4-4b2d-98ab-71cab69f4241.html?54216

问题描述:一个长度为2n的(整型)数组元素为 a1 a2 ... an b1 b2 ... bn
要求: 用O(1)的空间代价, 在O(n)时间内把数组变成 a1 b1 a2 b2 a3 b3 ... an bn

该贴中给出的方法很巧妙,但是还是没有满足O(1)空间的限制,或者是对数组的元素有限制才做到(相当于做hash之类的操作把原数组的数据给变换了)。如果数据不是整型的,而是任意的对象,就做不了了。

现在问: 有没有一种方法,可以只通过移动元素,来达到时间O(n) 空间(1)的要求?
...全文

相关推荐

评论 50
收藏 已收藏
分享
返回顶部
michael122
数据结构与算法 33,027 成员 35,334 内容