调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
中等
相关标签
相关企业
提示

在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。

示例:

输入:[5, 3, 1, 2, 3]
输出:[5, 1, 3, 2, 3]

提示:

  • nums.length <= 10000
通过次数
17.4K
提交次数
26.2K
通过率
66.5%

相关标签

相关企业

提示 1
假设数组按升序排序。有什么办法可以把它调整为交替的高峰和低谷?

提示 2
尝试遍历排序的数组。你可以交换元素直到将数组调整好吗?

提示 3
请注意,如果确保山峰位置正确,那么山谷也会在正确位置。因此,对数组x的迭代可以跳过每一个其他元素。

提示 4
你是否一定要对数组进行排序?你可以用一个未排序的数组来做到这一点吗?

提示 5
假设你有{0, 1, 2}三个元素的序列,以任意顺序排列。写出这些元素所有可能的排列,以及如何把它们变成1是波峰的形式。

提示 6
重新访问你刚才写出的{0, 1, 2}序列。想象一下有元素在最左边的元素之前。你能确保交换元素的方式不会使数组的前一部分失效吗?

提示 7
你应该可以设计一个O(n) 的算法。

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
运行和提交代码需要登录
nums =
[3,5,2,1,6,4]
Source