您的位置:首页 > 其它

记录LeetCode的一点一滴

2015-10-10 16:15 232 查看
以前的csdn号找不到了,不过以前也没写过博客。。。。研究生比较自主,每天刷一点LeetCode吧!那就记录一下。
PS:之前没搞过算法,算导什么的也从来没刷过,渣渣一个!!算法大神多指教。。。

AC的第一道:

Move Zeroes

      
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.

这道题应该算非常简单的,只是两个要求要注意一下,一是要原地换序,不要做拷贝(目测空间复杂度有要求),移动次数尽可能少。

我的代码:
void moveZeroes(int* nums, int numsSize) {

int i , j ;

 for(i = 0 , j = 0 ; i < numsSize ; i++)

 {

  if(nums[i] != 0)

  {

   if(j)

   {

    nums[i - j] = nums[i];

    nums[i] = 0;

   }

  }

  else

   j++;

 }

}

求各路大神轻喷指教。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 算法 博客 csdn