本人几乎每天都会来力扣试试水
今天做这个颜色分类(这道题来说就是排序),没看提示做出来啦,原来做题好多都是看提示做出来。怎么说,继续加油!
class Solution {
public void sortColors(int[] nums) {
List<Integer> list = new ArrayList<Integer>();
List<Integer> finall = new ArrayList<Integer>();
for (int i = 0; i < nums.length; i++) {
list.add(nums[i]);
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i) == 0) {
finall.add(list.get(i));
System.out.println("finall集合的数据 :" + finall);
list.remove(i);
i--;
System.out.println("list集合的数据 :" + list);
}
}
System.out.println("1---------------------------------------------");
for (int i = 0; i < list.size(); i++) {
System.out.println(list);
System.out.println("长度" + list.size());
System.out.println("此时的list.get(" + i+")" + list.get(i));
if (list.get(i) == 1) {
System.out.println();
finall.add(list.get(i));
System.out.println("finall集合的数据 :" + finall);
list.remove(i);
i--;
System.out.println("list集合的数据 :" + list);
System.out.println("----" + i);
System.out.println("----" + list.size());
}
}
System.out.println("2---------------------------------------------");
for (int i = 0; i < list.size(); i++) {
if (list.get(i) == 2) {
finall.add(list.get(i));
System.out.println("finall集合的数据 :" + finall);
list.remove(i);
i--;
System.out.println("list集合的数据 :" + list);
}
}
for (int i = 0; i < nums.length; i++) {
nums[i] = finall.get(i);
}
}
}
其中的 i-- 是为了还原remove把一个下标吞了。