C++怎么实现颜色排序


这篇文章主要介绍了C++怎么实现颜色排序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++怎么实现颜色排序文章都会有所收获,下面我们一起来看看吧。Example:Input: [2,0,2,1,1,0]
Output: [0,0,1,1,2,2]Follow up:A rather straight forward solution is a two-pass algorithm using counting sort.
First, iterate the array counting number of 0″s, 1″s, and 2″s, then overwrite array with total number of 0″s, then 1″s and followed by 2″s.Could you come up with aone-pass algorithm using only constant space?这道题的本质还是一道排序的题,题目中给出提示说可以用计数排序,需要遍历数组两遍,那么先来看这种方法,因为数组中只有三个不同的元素,所以实现起来很容易。- 首先遍历一遍原数组,分别记录0,1,2 的个数。
– 然后更新原数组,按个数分别赋上 0,1,2。解法一:题目中还要让只遍历一次数组来求解,那么就需要用双指针来做,分别从原数组的首尾往中心移动。- 定义 red 指针指向开头位置,blue 指针指向末尾位置。- 从头开始遍历原数组,如果遇到0,则交换该值和 red 指针指向的值,并将 red 指针后移一位。若遇到2,则交换该值和 blue 指针指向的值,并将 blue 指针前移一位。若 香港云主机遇到1,则继续遍历。解法二:当然我们也可以使用 while 循环的方式来写,那么就需要一个变量 cur 来记录当前遍历到的位置,参见代码如下:解法三:关于“C++怎么实现颜色排序”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C++怎么实现颜色排序”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注开发云行业资讯频道。

相关推荐: win10电脑窗口动画怎么设置

这篇“win10电脑窗口动画怎么设置”文章的知识点大部分人都不太理解, 香港云主机所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win10电脑窗口动画怎么设置”文章吧。设置方法:…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/14 16:22
下一篇 07/14 16:22

相关推荐