Description:
Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.
For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].
Note:
- You must do this in-place without making a copy of the array.
- Minimize the total number of operations.
时空复杂度都在O(n)内
public class Solution { public void moveZeroes(int[] nums) { //nums = [0, 1, 0, 3, 12]->[1, 3, 12, 0, 0] for(int i=0,j=0; i<nums.length; i++) { if(nums[i]!=0) { int t = nums[i]; nums[i] = nums[j]; nums[j] = t; j ++; } } } }
本文介绍了一种算法,可在不复制数组的前提下将所有零元素移动到数组末尾,同时保持非零元素的相对顺序不变。该算法采用双指针技术实现,满足了在原地操作且尽量减少操作次数的要求。
2117

被折叠的 条评论
为什么被折叠?



