/*
- @Author: sumBorn
- @Date: 2022-02-23 15:14:43
- @LastEditTime: 2022-02-23 19:02:07
- @Description: https://leetcode-cn.com/leetbook/read/all-about-array/x9wv2h/
*/
/**
@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;
}
}