leetcode 283

这个题比较简单,只需要找到第一个是0的值的下标,那么以后所有的非零值的元素至少要向前移动一位,设置index就可以慢慢的赋值了,最后讲零的个数添加到最后即可

 1 class Solution {
 2 public:
 3     void moveZeroes(vector<int>& nums) {
 4         int num=0,index=0,i,flag=0;
 5         for(i=0;i<nums.size();i++) {
 6             if(nums[i]==0) {
 7             num++;
 8             if(!flag)
 9             index=i;
10             flag=1;
11             }
12             if(nums[i]!=0&&flag==1) {
13                 nums[index++]=nums[i];
14             } 
15         }
16         for(i=0;i<num;i++)
17         nums[index++]=0;
18     }
19 };

 

posted @ 2016-07-21 14:07  HYDhyd  阅读(137)  评论(0编辑  收藏  举报