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;
         }
      }
  • 相关阅读:
    【xinsir】githook之precommit分享
    node进程一些信号的意义
    ES6篇
    Webpack4篇
    Node篇
    Vuex篇
    WebStorage篇
    HTML5篇
    html5语义化标签大全
    emmet语法
  • 原文地址:https://www.cnblogs.com/evansyang/p/5237114.html
Copyright © 2011-2022 走看看