1classSolution {2public:3voidsortColors(vector<int>&nums) {4intzero=-1;//设置为-1 表示对于闭区间[0...zero]==0为无效区间。5inttwo=nums.size();//[two...n-1]==267for(inti=0;i<two;){//不需写i++因为有的情况i不需加加。8if(nums[i]==1){//如果e为19i++;//则只需i索引向...
leetcode[75] sort colors 给定一个数组,有0,1,2三个数,把数组排好序。不能直接用sort。 策略一: 简单的思路,扫描两次,第一次记录0,1,2的个数,第二次重写数组。 classSolution {public:voidsortColors(intA[],intn) {if(n <2)return;intn0 =0, n1 =0, n2 =0; vector<int>ans(n);for(intj ...
class Solution { public: void sortColors(vector<int>& nums) { int red=0, blue=nums.size()-1; for(int i=0; i<=blue; i++){ if(nums[i]==0) std:swap(nums[red++], nums[i]); if(nums[i]==2) std::swap(nums[i--], nums[blue--]); } } }; 总结 for里面第二项终止条件...
Given an arraynumswithnobjects colored red, white, or blue, sort themin-placeso that objects of the same color are adjacent, with the colors in the order red, white, and blue. We will use the integers0,1, and2to represent the color red, white, and blue, respectively. You must solve...
LeetCode Sort Colors (技巧) 题意: 一个数组只可能含有3种数据,分别为1,2,3,请将数组排序(只能扫一遍)。 思路: 如果扫两遍的话,用个桶记录一下,再赋值上去就行了。 1 class Solution { 2 public: 3 void sortColors(vector<int>& nums) {...
Leetcode 75. Sort Colors 75. Sort Colors 题目大意:给定一个数组,里面只包含0,1,2三个数,要求只做一次线性扫描,将数组变得有序 题目思路:我们只有0,1,2三种不同的数,我们只需要考虑把0放在前面,2放在后面即可,类比快排,我们可以考虑这样的情况,我们定义三个指针,l,r,mid,l之前的值我们置为...
方法一 一个相当直接的解决方案是使用计数排序扫描2遍的算法。 首先,迭代数组计算 0,1,2 出现的次数,然后依次用 0,1,2 出现的次数去覆盖数组。 代码 voidsortColors(intA[]){intn=A.length;intnum0=0,num1=0,num2=0;for(inti=0;i<n;i++){if(A[i]==0)++num0;elseif(A[i]==1)++num1;el...
博客:noahsnail.com|CSDN|简书 1. Description Sort Colors 2. Solution Two-pass class Solution{public:voidsortColors(vector<int>&nums){intleft=0;intright=nums.size()-1;intred=0;intwhite=0;intblue=0;for(inti=0;i<nums.size();i++){if(nums[i]==0){red++;}elseif(nums[i]==1){white...
【LeetCode】排序sort(共20题)【LeetCode】排序sort(共20题)链接:【56】Merge Intervals (2019年1⽉26⽇,⾕歌tag复习)合并区间 Input: [[1,3],[2,6],[8,10],[15,18]]Output: [[1,6],[8,10],[15,18]]Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [...
75. 颜色分类 - 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 [https://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95] 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色