标签:example should index without oop ace ati error filter
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:
思路:
- 因为把‘0’这个常数丢到最后,所以我们就一个loop指针扫过去把不是这个常数的都直接改写在前面的位置,然后再把剩下的位置改成这个特殊的常数。
- ‘in-place’改写省空间。
- 找这个‘常数’特征可以写一个特征filter(此处这个filter就是某常数)。
class Solution { public void moveZeroes(int[] nums) { int cur = 0; int len = nums.length; for(int i = 0; i < len; i++){ if(nums[i]!=0){ nums[cur]=nums[i]; cur++; } } for(int i= cur; i<len; i++){ nums[i]=0;//index error: ‘i‘ vs. ‘cur‘ } } }
标签:example should index without oop ace ati error filter
原文地址:http://www.cnblogs.com/mandyliu/p/7609128.html