zoukankan      html  css  js  c++  java
  • Leetcode 283. Move Zeroes

    283. Move Zeroes

    • Total Accepted: 98144
    • Total Submissions: 216474
    • Difficulty: Easy

    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].

    思路:遇到等于0的数,直接替换或者删除。

    代码:

    写法一:16 ms

     1 class Solution {
     2 public:
     3     void moveZeroes(vector<int>& nums) {
     4         int i,size=nums.size(),begin=0;
     5         for(i=0;i<size;i++){
     6             if(nums[i]) nums[begin++]=nums[i];
     7         }
     8         for(;begin<size;begin++){
     9             nums[begin]=0;
    10         }
    11     }
    12 };

    写法二:20 ms

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

    写法三:28 ms

     1 class Solution {
     2 public:
     3     void moveZeroes(vector<int>& nums) {
     4         int i,size=nums.size();
     5         for(i=0;i<nums.size();){
     6             if(nums[i]==0) nums.erase(nums.begin()+i);
     7             else{
     8                 i++;
     9             }
    10         }
    11         for(;i<size;i++){
    12             nums.push_back(0);
    13         }
    14     }
    15 };
  • 相关阅读:
    网络基础知识
    mysql安装
    docker打包镜像
    python的基础
    python静态属性的理解
    python中的静态方法和类方法
    python类的两种创建方式
    python的继承
    python中time和datetime模块
    python之模块
  • 原文地址:https://www.cnblogs.com/Deribs4/p/5679315.html
Copyright © 2011-2022 走看看