zoukankan      html  css  js  c++  java
  • 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:

    1. You must do this in-place without making a copy of the array.
    2. Minimize the total number of operations.

    Credits:
    Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

    解题思路:

    对一个vector扫一遍如果是0就删除并加一个计数器最后加上去就好了

    class Solution {
    public:
    void moveZeroes(vector<int>& nums) {
    if(nums.size()==0) return;
    int count_zero=0;

    for(vector<int>::iterator iter = nums.begin();iter!=nums.end();){

    if(*iter == 0){

    iter = nums.erase(iter);
    count_zero++;
    }
    else{
    iter++;
    }

    }
    for(int i=0;i<count_zero;i++)
    nums.push_back(0);

    }
    };

  • 相关阅读:
    线程池源码解析
    String与常量池
    spring循环依赖
    ConcurrentHashMap源码解析(JDK8)
    原子类源码分析
    web service和ejb的区别
    RPC
    hashcode()和equals()的区别
    关于json
    Lifecycle of jsf
  • 原文地址:https://www.cnblogs.com/liangyc/p/8793652.html
Copyright © 2011-2022 走看看