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元素从起始位置开始往后排。

    two pointer的思想。

    void moveZeroes(vector<int>& nums)
         {
             int zeros = 0;
             for (int i = 0; i < nums.size();i++)
             {
                 if (nums[i] == 0) zeros++;
             }
             int first = 0;
             for (int i = 0; i < nums.size();i++)
             {
                 if (nums[i] != 0)
                 {
                     nums[first++] = nums[i];
                 }
             }
             for (int i =first; i < nums.size();i++)
             {
                 nums[i] = 0;
             }
         }
  • 相关阅读:
    Java_多线程入门
    JAVA多线程基础(一)
    多线程1
    1.优化MySQL数据库
    廖胤松
    Mybatais
    Spring Boot入门
    MySQL的安装步骤详解
    MySQL入门
    WEB测试方法
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6871653.html
Copyright © 2011-2022 走看看