标签:
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.
算法时间复杂度 最坏为n2,感觉可以为n,类似于快排(二次的时候,考虑优化)
public class Solution { public void moveZeroes(int[] nums) { int flag =0, count = 0; for(int i=0; i<nums.length-1; i++) { if(nums[i] == 0) { for(int j=i+1; j<nums.length; j++) { flag = 0; if(nums[j] != 0) { nums[i] = nums[j]; nums[j] = 0; flag = 1; count ++; break; } } } if(flag ==0 && count>0) break; } } }
标签:
原文地址:http://www.cnblogs.com/cactus1504/p/4823918.html