刷爆LeetCode之 移动零

移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:

输入:
[0,1,0,3,12]
输出:[1,3,12,0,0]

说明:

  1. 必须在原数组上操作,不能拷贝额外的数组。
  2. 尽量减少操作次数。

解题思路:

从后向前双重循环遍历数组,遇到零就与其后一位交换位子。与冒泡排序原理相似。

代码如下:

public void moveZeroes(int[] nums) {
        for(int i=nums.length-1;i>0;i--) {
            	for(int j=nums.length-1;j>0;j--) {
            		if(nums[j-1]==0) {
            			nums[j-1]=nums[j];
            			nums[j]=0;
            		}
            	}
            }
    }

猜你喜欢

转载自blog.csdn.net/weixin_42233291/article/details/82817268