zoukankan      html  css  js  c++  java
  • LeetCode(283)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.

    分析

    给定一个整数数组,将数组中的所有0元素,移至序列末尾,且不能改变其它非零元素的原始顺序。

    要求,空间复杂度为常量,不可使用辅助空间。

    很简单的题目,只需遍历一次将非0元素从首位置依次赋值即可。

    AC代码

    class Solution {
    public:
        void moveZeroes(vector<int>& nums) {
            if (nums.empty())
                return;
    
            int sz = nums.size();
    
            int count = 0;
            for (int i = 0, k = 0; i < sz; ++i)
            {
                if (nums[i] != 0)
                {
                    nums[count] = nums[i];
                    ++count;
                }
                continue;
            }
            while (count < sz){
                nums[count++] = 0;
            }
            return;
        }
    };

    GitHub测试程序源码

  • 相关阅读:
    把一列数据分割成两列
    数据校验,轴的概念
    叠加折线图
    饼图
    柱状图、水平柱状图
    柱状图
    数据筛选过滤
    余数
    输出进度条
    生成器-文件内容
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214745.html
Copyright © 2011-2022 走看看