当前位置:   article > 正文

【leetcode】Array——Sort Color(75)_i - sorting colored array

i - sorting colored array

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.

解题:

如果第一次遍历,统计0,1,2的次数,第二次遍历赋值,非常容易。

改进:(one-pass)

三个指针 :

left:记录0

right:记录2

i:遍历数组用的


遍历的过程中 遇到1直接跳过,i++;遇到0则i与left位置对换,left++,i++;遇到2,i与right对换,right—,但是i不变


代码:

     int left = 0;

    int right = nums.length-1;

    int temp = -1;

    for(int i=0;i<=right;i++){

    

    if(nums[i]==0){

    temp = nums[left];

    nums[left] = nums[i];

    nums[i]=temp;

    left++;

    }

    if(nums[i]==2){

    temp = nums[right];

    nums[right]=nums[i];

    nums[i]=temp;

    right--;

    i--;

    }

     }




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/75110
推荐阅读
相关标签
  

闽ICP备14008679号