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

    1. 问题描述

    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.
    Tags: Array Two Pointers

    Similar Problems: (E) Remove Element

    2. 解题思路

    • 解题思路可借鉴 冒泡法

    3. 代码

     1 class Solution {
     2 public:
     3     void moveZeroes(vector<int>& nums)
     4     {
     5         //思路一:类似冒泡法
     6         for (size_t i=0; i<nums.size(); i++)
     7         {
     8             if (0 == nums[i])
     9             {
    10                 for (size_t j=i+1; j<nums.size(); j++)
    11                 {
    12                     if (0!=nums[j])
    13                     {
    14                         nums[i] = nums[j];
    15                         nums[j] = 0;
    16                         break;
    17                     }
    18                 }
    19             }
    20         }
    21 
    22         /* 思路二
    23         for (int i = 0, j = 0; i < nums.size(); i++) 
    24         {
    25             if (nums[i] != 0) 
    26             {
    27                 if (i != j) 
    28                 {
    29                     nums[j] = nums[i];
    30                     nums[i] = 0;
    31                 }
    32                 j++;
    33             }
    34         }
    35         */
    36     }
    37 };

    4. 反思

  • 相关阅读:
    python端口扫描
    python模块-platform
    Mysql注入root权限直接写一句话马
    meterpreter使用
    msfpayload反弹shell
    sql_injection之post注入
    初涉sqlmap
    sql_injection之基本get注入
    利用SSLStrip截获https协议--抓取邮箱等密码
    简析CSRF
  • 原文地址:https://www.cnblogs.com/whl2012/p/5596714.html
Copyright © 2011-2022 走看看