283 move zeroes

| 分类 leetcode  | 标签 array 

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.

1

两个指针,先把非零元素移动到数组前面,后面补零。

1
2
3
4
5
6
7
8
9
10
11
public void moveZeroes(int[] nums) {
       if(nums == null || nums.length == 0) return;
        int n = nums.length;
        int idx = 0;
        for(int i = 0; i < n;i++){
            if(nums[i] != 0) nums[idx++] = nums[i];
        }
        for(int i = idx; i < n; i++){
            nums[i] = 0;
        }
    }

2 most votes

基本也是这种方法。


上一篇     下一篇