【LeetCode】数组系列(排序)

来源:互联网 发布:迪奥华氏知乎 编辑:程序博客网 时间:2024/05/11 21:07

75. Sort Colors

题目:由0,1,2组成的数组,对其进行排序。没搞懂考啥

public class Solution {    public void sortColors(int[] nums) {        int count0 = 0, count1 = 0, count2 = 0;        for(int x : nums){            if(x == 0) count0++;            else if(x == 1) count1++;            else count2++;        }        for(int i = 0; i < nums.length; i++){            if(i < count0) nums[i] = 0;            else if(i < count0+count1) nums[i] = 1;            else nums[i] = 2;        }        return;    }}

一次遍历的方法

public class Solution {    public void sortColors(int[] nums) {        int start = 0, end = nums.length-1;        for(int i = 0; i <= end; i++){            if(nums[i] == 0){                int temp = nums[i];                nums[i] = nums[start];                nums[start++] = temp;            }            else if(nums[i] == 2){                int temp = nums[i];                nums[i--] = nums[end];                nums[end--] = temp;            }        }        return;    }}



阅读全文
0 0
原创粉丝点击