Leetcode_c++: Sort Colors (075)
2016-06-03 00:48
330 查看
题目
Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.
Note:
You are not suppose to use the library’s sort function for this problem.
算法
two指针复杂度:O(N)
题意就是对一个包含0,1,2三种数字的数组重新排序,使得排好序的数组前一段都是0,中间一段都是1,最后一段都是2。
class Solution { public: void sortColors(vector<int>& nums) { int n=nums.size(); int zeropoint=0,twopoint=n-1; int i=0; while(i<=twopoint){ if(nums[i]==0 && i!=zeropoint) swap(nums[zeropoint++],nums[i]); else if(nums[i]==2 && i!=twopoint) swap(nums[twopoint--],nums[i]); else i++; } } };
相关文章推荐
- Leetcode_c++: Search a 2D Matrix (074)
- C# 调用 C++ 在Release下重新生成的问题
- C++模板类继承中的Name Lookup
- C++作业7
- 未声明的标识符ERROR C2065
- c语言struct用法
- 正月龙-----C语言头文件的作用
- C语言注释转化为C++注释
- Library vector Type
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- c语言模拟实现memmove
- 构造数组的MaxTree
- 中软国际机试题
- 调用约定
- #利用C语言-EasyX图形设计-制作简易计算器#
- 冒泡排序(C语言版)
- c++临界区域-加锁
- 带你玩转Visual Studio——绑定进程调试
- c语言学习笔记21之函数5