首页 > 学院 > 开发设计 > 正文

LeetCode 75.Sort Colors

2019-11-08 18:36:24
字体:
来源:转载
供稿:网友

description: 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.

可以使用双指针的算法来进行计算,但是这用因为程序就只有3个变量,因此可以使用特定的判断来进行运算。

public class Solution { public void sortColors(int[] nums) { if (nums == null || nums.length < 1) { return; } int left = 0; int right = nums.length - 1; int i = 0; while (i <= right) { if (nums[i] == 0) { swap(nums, left, i); left++; i++; } else if (nums[i] == 1) { i++; } else { swap(nums, i, right); right--; } } } private void swap(int[] nums, int left, int right) { int temp = nums[left]; nums[left] = nums[right]; nums[right] = temp; }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表