为了保证在不需要Leetcode的情况下也可以运行,我写了测试用例,希望在线下也可以用:
Total Accepted: 44440 Total
Submissions: 103965 Difficulty: Easy
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.
public class MoveZeroes { public static void main(String args[]){ int[] nums= {0, 1, 0, 3, 12}; int[] OutNum = moveZeroes(nums); for(int i=0; i<OutNum.length;i++){ System.out.println("OutNum="+OutNum[i]); } } public static int[] moveZeroes(int[] nums) { int ZeroNum=0; for(int i = 0; i <nums.length ;i++){ if(nums[i]==0){ ZeroNum++; }else{ nums[i-ZeroNum]=nums[i]; } } for(int i = nums.length-ZeroNum; i <nums.length ;i++){ nums[i]=0; } return nums; } }在leetcode中上传时,注意,最后一句是不需要的。
return nums;亏我还以为多复杂,想讲数组转换为列表,这样的结果可能会更好!