283. Move Zeroes

Leetcode 283. Move Zeroes

public class Solution {
    public void moveZeroes(int[] nums) {
        int j=0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]!=0){
                int temp=nums[i];
                nums[i]=nums[j];
                nums[j]=temp;
                j++;
            }
        }
    }
}

follow up: minimize writes 代码只需要返回最后有效数组的长度,有效长度之外的数字是什么无所谓,原先input里面的数字不一定要保持原来的相对顺序

int moveZeroesWithMinimumSetps(vector<int>& nums)
{
        int left = 0, right = nums.size() - 1;
        while (left < right)
        {
                while (left < right && nums[left] != 0)left++;. 
                while (left < right && nums[right] == 0)right--;
                if (left < right)nums[left++] = nums[right--];
        }
        return left;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容