您的位置:首页 > 其它

283. Move Zeroes

2016-03-30 11:25 369 查看
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

很简单一个去0的问题,不需要调换顺序,只是根据要求删除0即可,
我的代码:
public class Solution {

public void moveZeroes(int[] nums) {
if(nums.lenth==0||nums==null)return;//数组如果是对象数组就有可能有空值存在

int dex=0;

for(int i=0;i<nums.length;i++)

{

if(nums[i]!=0)

{

nums[dex]=nums[i];

dex++;

}

}

for(int i=dex;i<nums.length;i++)

{

nums[i]=0;

}

}

}

别人的代码:
publicvoid
moveZeroes(int[]
nums)
{

if
(nums == null
|| nums.length == 0)return;

int
insertPos = 0;

for
(int
num: nums)
{

if
(num != 0)
nums[insertPos++] = num;
}

while
(insertPos < nums.length)
{

nums[insertPos++]
= 0;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: