常见网站模式,西双版纳网站制作公司,义乌网图科技有限公司电话,怎么用云虚拟主机建设网站题目#xff1a;
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums #xff0c;原地对它们进行排序#xff0c;使得相同颜色的元素相邻#xff0c;并按照红色、白色、蓝色顺序排列。
我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
必须在不使用库内置的 so…题目
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums 原地对它们进行排序使得相同颜色的元素相邻并按照红色、白色、蓝色顺序排列。
我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
必须在不使用库内置的 sort 函数的情况下解决这个问题。
方法双指针
class Solution {public void sortColors(int[] nums) {int n nums.length;int p0 0, p1 0;for (int i 0; i n; i) {if (nums[i] 1) {int temp nums[i];nums[i] nums[p1];nums[p1] temp;p1;} else if (nums[i] 0) {int temp nums[i];nums[i] nums[p0];nums[p0] temp;if (p0 p1) { // 关键temp nums[i];nums[i] nums[p1];nums[p1] temp;}p0;p1;}}}
}