码迷,mamicode.com
首页 > 编程语言 > 详细

8.23 数组的partition调整

时间:2019-01-01 15:25:11      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:空间复杂度   有序数组   来源   补充   复杂度   重复元素   nbsp   没有   strong   

题目】:

  给定一个有序数组arr,调整arr使得这个数组的左半部分没有重复元素且升序,而不用保证右部分是否有序

  例如:

    arr=[1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 8, 8, 9],调整之后arr=[1, 2, 3, 4, 5, 6, 7, 8, 9, ...]

 

补充题目】:

  给定一个数组arr,其中只可能含有0、1、2三个值,请实现arr的排序

  另一种问法为:有一个数组,其中只有红球、篮球和黄球,请实现红球全放在数组的左边,篮球放在中间,黄球放在右边

  另一种问法为:有一个数组,再给定一个值k,请实现比k小的数都放在数组的左边,等于k的数都放在数组的中间,比k大的数都放在数组的右边

 

要求】:

  1、所有题目实现的时间复杂度为O(N)

  2、所有题目实现的额外空间复杂度为O(1)

 

题目来源:左程云老师《程序员代码面试指南》

8.23 数组的partition调整

标签:空间复杂度   有序数组   来源   补充   复杂度   重复元素   nbsp   没有   strong   

原文地址:https://www.cnblogs.com/latup/p/10204828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!