颜色分类

/*

/**

  • @description: 交换

  • @param {*}

  • @return {*}
    */
    public class Solution
    {
    public void SortColors(int[] nums)
    {
    for (var i = 0; i < nums.Length; i++)
    {
    for (var j = i + 1; j < nums.Length; j++)
    {
    if (nums[j] < nums[i])
    {
    Swap(nums, i, j);
    }
    }
    }
    }

    public void Swap(int[] nums, int i, int j)
    {
    int tmp = nums[i];
    nums[i] = nums[j];
    nums[j] = tmp;
    }
    }

/**

  • @description: 双指针,为0左侧进1,为2右侧减1

  • @param {*}

  • @return {*}
    */
    public class Solution
    {
    public void SortColors(int[] nums)
    {
    if (nums.Length <= 1) return;

     int left = 0;
     int right = nums.Length - 1;
    
     for (var i = 0; i <= right; i++)
     {
         if (nums[i] == 0)
         {
             Swap(nums, left, i);
             left++;
         }
         else if (nums[i] == 2)
         {
             Swap(nums, right, i);
             right--;
             i--;
         }
     }
    

    }

    public void Swap(int[] nums, int i, int j)
    {
    int tmp = nums[i];
    nums[i] = nums[j];
    nums[j] = tmp;
    }
    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • <center>#1 Two Sum</center> link Description:Given an arr...
    铛铛铛clark阅读 2,258评论 0 3
  • <center>#51 N-Queens</center> link Description:The n-quee...
    铛铛铛clark阅读 1,042评论 0 0
  • 给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝...
    文茶君阅读 360评论 0 0
  • func sortColors(nums []int) {//// 分为0, 1, 2//// (c, len(...
    杨杰_18b7阅读 88评论 0 0
  • ● 如何打印二叉树每层的节点? 考察点:二叉树 参考回答: 实现代码: import java.util.Arra...
    le_u阅读 528评论 0 0