购物网站建设的意义与目的,鞋网站建设,网站设计风,怎样开发自己的app给定一个数组 nums#xff0c;编写一个函数将所有 0 移动到数组的末尾#xff0c;同时保持非零元素的相对顺序。
请注意 #xff0c;必须在不复制数组的情况下原地对数组进行操作。
解【做的有点呆#xff0c;额外设置了计数器变量统计0的个数再从后往前赋0】#xff1a…给定一个数组 nums编写一个函数将所有 0 移动到数组的末尾同时保持非零元素的相对顺序。
请注意 必须在不复制数组的情况下原地对数组进行操作。
解【做的有点呆额外设置了计数器变量统计0的个数再从后往前赋0】
class Solution {public void moveZeroes(int[] nums) {int slow 0;int count 0;for (int fast 0; fast nums.length - 1; fast) {if (nums[fast] ! 0) {nums[slow] nums[fast];}else {count ;}}for (int i 1; i count; i) {nums[nums.length - i] 0;}}
}
另解【直接把双指针的慢指针之后的位置全赋0】
public void moveZeroes(int[] nums) {int slow 0;for (int fast 0; fast nums.length; fast) {if (nums[fast] ! 0) {nums[slow] nums[fast];}}// 后面的元素全变成 0for (int j slow; j nums.length; j) {nums[j] 0;}}