假设我有一个简单的数组:
[1, 20, 15, 37, 46, 9]
Run Code Online (Sandbox Code Playgroud)
我需要让它看起来像这样:
[1, 9, 15, 46, 37, 20]
Run Code Online (Sandbox Code Playgroud)
因此,我们的想法是将最大的值或最大的两个值中的一对放在数组的中间,然后像金字塔一样将递减的数字放在数组的右侧和左侧。
我有一些想法,但它们似乎不够优雅。请指教。
我无法给你一个javascript示例,但我会首先将每个数组元素按顺序排列,然后枚举(给出索引),然后从前到后按偶数/奇数顺序添加它们。
[1, 20, 15, 37, 46, 9]
Run Code Online (Sandbox Code Playgroud)
变成
[1, 9, 15, 20, 37, 46]
Run Code Online (Sandbox Code Playgroud)
然后打印奇数索引最多为数组大小的一半,然后打印偶数索引从末尾到中间。
编辑: Python的乐趣:
tt = sorted([1, 20, 15, 37, 46, 9])
print tt[0:len(tt)/2] + list(reversed(tt[len(tt)/2:len(tt)]))
Run Code Online (Sandbox Code Playgroud)