买过域名之前就可以做网站了吗,网站 乱码,网站关键词从哪改,研究生网站建设283. 移动零 1#xff09;题目2#xff09;代码方法一#xff1a;两层for循环方法二#xff1a;使用双指针 3#xff09;结果方法一结果方法二结果 1#xff09;题目
给定一个数组 nums#xff0c;编写一个函数将所有 0 移动到数组的末尾#xff0c;同时保持非零元素的… 283. 移动零 1题目2代码方法一两层for循环方法二使用双指针 3结果方法一结果方法二结果 1题目
给定一个数组 nums编写一个函数将所有 0 移动到数组的末尾同时保持非零元素的相对顺序。 请注意 必须在不复制数组的情况下原地对数组进行操作。
示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出: [0] 提示:
1 nums.length 104-231 nums[i] 231 - 1
进阶你能尽量减少完成的操作次数吗
2代码
方法一两层for循环
public void moveZeroes(int[] nums) {if (nums.length 1) return;for (int i 0; i nums.length; i) {if (nums[i] 0) {for (int j i1; j nums.length; j) {if (nums[j] ! 0) {nums[i] nums[j];nums[j] 0;break;}}}}
}方法二使用双指针
public void moveZeroes(int[] nums) {if (nums.length 1) return;int left 0,right 1;while (right nums.length) {if (nums[left] 0) {if (nums[right] ! 0) {nums[left] nums[right];nums[right] 0;left;}} else {left;}right;}
}3结果
方法一结果 方法二结果