----------------------------------------------------------------------

nums[i]==0   --> 放入下标队列，没有元素移动
nums[i]!=0 && !queue.isEmpty()  --> 从位置队列头取出一个位置j，将这个值nums[i]赋给取出的位置nums[j]，同时将此位置i（值已移动，可用）放入位置队列
nums[i]!=0 && queue.isEmpty()  --> 说明之前的都已经好了，不需要进行任何操作

AC代码如下：

public class Solution {
public void moveZeroes(int[] nums) {
List<Integer> queue=new ArrayList<>();
for(int i=0;i<nums.length;i++){
if(nums[i]!=0 && !queue.isEmpty()){
nums[queue.remove(0)]=nums[i];
}else if(nums[i]==0){
}
}
Arrays.fill(nums,nums.length-queue.size(),nums.length,0);
}
}

AC代码：

public class Solution {
public void moveZeroes(int[] nums) {
int i=0,j=0;
while(i<nums.length){
if(nums[i]==0){
j=Math.max(i,j);
while(j<nums.length && nums[j]==0) j++;
if(j==nums.length) return ;
nums[i]=nums[j];
nums[j++]=0;
}
i++;
}
}
}

LeetCode之283. Move Zeroes的更多相关文章

1. LeetCode Javascript实现 283. Move Zeroes 349. Intersection of Two Arrays 237. Delete Node in a Linked List

283. Move Zeroes var moveZeroes = function(nums) { var num1=0,num2=1; while(num1!=num2){ nums.forEac ...

2. 283. Move Zeroes（C++）

283. Move Zeroes Given an array nums, write a function to move all 0's to the end of it while mainta ...

3. LeetCode 283. Move Zeroes （移动零）

Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...

4. leetcode 283. Move Zeroes -easy

题目链接:https://leetcode.com/problems/move-zeroes/ 题目内容: Given an array nums, write a function to move ...

5. Java [Leetcode 283]Move Zeroes

题目描述: Given an array nums, write a function to move all 0's to the end of it while maintaining the r ...

6. Leetcode 283 Move Zeroes python

题目: Given an array nums, write a function to move all 0's to the end of it while maintaining the rel ...

7. 11. leetcode 283. Move Zeroes

Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...

8. Leetcode 283 Move Zeroes 字符串

class Solution { public: void moveZeroes(vector<int>& nums) { ; ; i< nums.size(); ++i){ ...

9. 283 Move Zeroes

/** * 题意:将0挪到末尾,并且不改数组中原有元素的顺序 * 解析:找到0元素,然后寻找其后面非0的元素,进行交换位置 * @param {number[]} nums * @return {vo ...

随机推荐

1. 【Swift】TTTAttributedLabel使用小记

前言 TTTAttributedLabel继承自UILabel,很方便基于现有代码进行修改,Star超过4K+,今天用了一下作点笔记. 声明  欢迎转载,但请保留文章原始出处:)  博客园:http: ...

2. NOIp2010 关押罪犯

二分+2-SAT 先预处理出所有的v,然后离散化一下,在那个的基础上二分,对于每次二分出的值约束边权超过所二分出的边权的两点. //OJ 1322 //by Cydiater //2015.8.26 ...

3. 5分钟实现VS2010整合NUnit进行单元测试

本文转载自:http://www.cnblogs.com/jeffwongishandsome/archive/2012/03/18/2404845.html 1.下载安装NUnit(最新win版本为 ...

4. 【iOS】编译静态库

与java和.net一样,objc也由类库的概念,不过在在objc上一般叫库,库表示程序代码集合,可以共享给其他程序使用,库是编译后的二进制文件,因此不能看到源代码,多用于一些开放sdk(如百度地图s ...

5. UESTC 919 SOUND OF DESTINY --二分图最大匹配+匈牙利算法

二分图最大匹配的匈牙利算法模板题. 由题目易知,需求二分图的最大匹配数,采取匈牙利算法,并采用邻接表来存储边,用邻接矩阵会超时,因为邻接表复杂度O(nm),而邻接矩阵最坏情况下复杂度可达O(n^3). ...

6. android常用的弹出提示框

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等 ...

7. Python基础 (yield生成器)

如果在一个函数中使用了yield,那么这个函数实际上生成的是一个生成器函数 ,返回的是一个generator object.生成器是实现迭代的一种方式 特点: 其实返回的就是可以的迭代对象 和迭代的方 ...

8. 在Html中使用JavaScript的几点小结

前言 越发的意识到JS这门作为前端语言的重要性.所以下定决心这段时间在项目允许的情况下花大量时间在学习JS上.争取让自己的前端功底深厚一点. 小结 在包含外部js文件时,必须将src属性设置为指向相应 ...

9. Js判断一个单词是否有重复字母

今天上午刷到一道题,大体是写一个方法判断一个单词中是否有重复的字母(或者说一个字符串中是否有重复的字符).我的思路是一个字符一个字符地遍历,如果发现有重复的停止: function isIsogram ...

10. poj1001 Exponentiation

Description Problems involving the computation of exact values of very large magnitude and precision ...