• 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;
         }
      }
  • 相关阅读:
    缓冲区
    4.9
    JDBC连接
    3.31
    BizTalk框架概述
    不通过SPS对象模型更改文档扩展字段的方法
    asdfasdf
    设计模式介绍
    Multiple Checkbox Items In A DataGrid Introduction
    Factory Method
  • 原文地址:https://www.cnblogs.com/evansyang/p/5237114.html
Copyright © 2020-2023  润新知