lintcode539 移动零

Posted 狗剩的美丽家园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lintcode539 移动零相关的知识,希望对你有一定的参考价值。

移动零 

给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序

 注意事项

1.必须在原数组上操作
2.最小化操作数

样例

给出 nums = [0, 1, 0, 3, 12], 调用函数之后, nums =[1, 3, 12, 0, 0].

 

 1 class Solution {
 2 public:
 3     /*
 4      * @param nums: an integer array
 5      * @return:
 6      */
 7     void moveZeroes(vector<int>& nums) {
 8         // write your code here
 9         vector<int> res;
10         int len = nums.size();
11         if (0 == len) return;
12         for (int i = 0; i < len; i++) {
13             if (nums[i] != 0) {
14                 res.push_back(nums[i]);
15             }
16         }
17         for (int i = res.size(); i < len; i++) {
18             res.push_back(0);
19         }
20         nums = res;
21     }
22 };

 

以上是关于lintcode539 移动零的主要内容,如果未能解决你的问题,请参考以下文章

LintCode 539: Move Zeroes

LintCode之移动零

[LintCode] Move Zeroes 移动零

LintCode 2. 尾部的零

[LintCode] Trailing Zeroes 末尾零的个数

从零开始配置vim(27)——代码片段