75. Sort Colors(js)

75. Sort Colors

Given an array with n objects colored red, white or blue, sort them in-place 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.

Example:

Input: [2,0,2,1,1,0]
Output: [0,0,1,1,2,2]
题意:给只包含0,1,2数组排序
代码如下
/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
// 遇0左移,遇2右移
var sortColors = function(nums) {
    var z=0,s=nums.length-1;
    for(var i=0;i<=s;i++){
        while(nums[i]===2 && i<s){
            //交换位置
            let a=nums[i];
            nums[i]=nums[s];
            nums[s]=a;
            s--;
        }
        while(nums[i]===0 && i>z){
            let b=nums[i];
            nums[i]=nums[z];
            nums[z]=b;
            z++;
        }
    }
    
};

 

posted @ 2019-03-20 21:39  mingL  阅读(191)  评论(0编辑  收藏  举报