zoukankan      html  css  js  c++  java
  • LeetCode283:Move Zeros

    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.

    主要思路:保持两个指针,保证两个指针之间[zero_bit,nonzero_bit)范围内都是0,然后调换首个0和首个非零

    1. void moveZeroes(int* nums, int numsSize) 
      {
          int zero_bit = 0;
          int nonzero_bit = 0;
         while(nonzero_bit<numsSize)
         {
             if(nums[nonzero_bit] != 0)
             {
                 if(nonzero_bit != zero_bit)
                 {
                     nums[zero_bit++] = nums[nonzero_bit];
                     nums[nonzero_bit] = 0;
                 }else{
                     ++zero_bit;
                 }
             }
             ++nonzero_bit;
         }
      }
  • 相关阅读:
    Socket
    剑指 Offer 14- I. 剪绳子
    剑指 Offer 29. 顺时针打印矩阵
    判断二分图
    vue生命周期以及常用标签
    滑动窗口
    二叉树
    常用算法
    动态规划
    蓄水池抽样
  • 原文地址:https://www.cnblogs.com/evansyang/p/5237114.html
Copyright © 2011-2022 走看看