找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2960|回复: 0

[代码与实例] Lintcode508 Wiggle Sort solution 题解

15

主题

15

帖子

15

积分

贫民

积分
15
Jenny 发表于 2018-7-6 21:55:06 | 显示全部楼层 |阅读模式
【题目描述】
Given an unsorted array nums, reorder it in-place such that
nums[0] <= nums[1] >= nums[2] <= nums[3]....
Notice:Please complete the problem in-place.
给你一个没有排序的数组,请将原数组就地重新排列满足如下性质
nums[0] <= nums[1] >= nums[2] <= nums[3]....
注意事项:请就地排序数组,也就是不需要额外数组

【题目解析】
题目对摇摆排序的定义有两部分:
①如果i是奇数,nums >= nums[i - 1]    ②如果i是偶数,nums <= nums[i - 1]
所以我们只要遍历一遍数组,把不符合的情况交换一下就行了。具体来说,如果nums > nums[i - 1], 则交换以后肯定有nums <= nums[i - 1]。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表