python,如输入[8,8,4,6,2,7],输出[4,8,6,7,2,8]
![]() | 1 blueset 2017-11-27 21:18:55 +08:00 via Android 排序,然后左右交替取数? 8 8 4 6 2 7 → 2 4 6 7 8 8 2 4 6 (7 8 8) - 8 8 7 (6 4 2) 2 <= 8 >= 4 <= 8 >= 6 <= 7 |
![]() | 2 jzy 2017-11-27 21:19:00 +08:00 via iPhone 从小到大排序,前面一半放奇数位,后面一半放偶数位。如果奇数位和偶数位首位相等,应该是无解了 |
![]() | 3 momocraft 2017-11-27 21:20:44 +08:00 先排成升序然后反复横跳地取: arr[3] --(向左)-- arr[2] --(向右)-- arr[4] --(向左)-- |
![]() | 4 lhx2008 2017-11-27 21:21:38 +08:00 via Android 答案不唯一呀,还要随机分布么 |
![]() | 5 ballshapesdsd 2017-11-27 21:29:00 +08:00 leetcode 上有这道题。。一模一样的 |
6 liemehoc OP |
7 liemehoc OP @ballshapesdsd 名字叫啥 |
![]() | 8 ballshapesdsd 2017-11-27 21:38:01 +08:00 ![]() |
9 liemehoc OP @ballshapesdsd 学习了,解法有意思 |
![]() | 10 SlipStupig 2017-11-27 23:03:15 +08:00 我今天也遇到类似的问题: python: list_a = ['m', 'z', 'k', 'i'] dict_a = {'z': 2, ‘ k ’: 3, 'm':'a', 'i': -1} dict_a 有什么办法能优雅的按照 list_a 中的 key 顺序排列呢? |
![]() | 11 jmc891205 2017-11-27 23:22:34 +08:00 @SlipStupig [dict_a[k] for k in list_a]这样? |
![]() | 12 dangoron 2017-11-27 23:28:18 +08:00 via Android shell sort 做到一半的感觉。。 |
![]() | 14 nondanee 2017-11-28 01:53:40 +08:00 via Android @SlipStupig dict 就是无序的呀,用 collections.OrderedDict 哇 |
15 LukeXuan 2017-11-28 03:07:00 +08:00 找到中位数(O(n)),然后比中位数小的放在偶数位,大的放在奇数位。 |
![]() | 16 vegito2002 2017-11-28 03:33:32 +08:00 Wiggle Sort, Google 原题, LC 上面有 |
![]() | 17 SlipStupig 2017-11-28 07:24:14 +08:00 @jmc891205 哈哈,好像是这样,但是如果是两个 list 呢? |
![]() | 18 dangyuluo 2017-11-28 08:36:35 +08:00 我觉得答案不唯一吧。 |
![]() | 19 leetao94 2017-11-28 08:41:54 +08:00 leetcode 的中类似的一题,http://www.leetao94.cn/2017/08/24/Wiggle%20Sort%20II/ |
20 liemehoc OP |