【leetcode283】移动零

1、题目描述

题目链接
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:
输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:
输入: nums = [0]
输出: [0]

2、基本思路

 基本思想,将数组中不为零的数按照原来的顺序依次放到数组的前部分,将0元素放置到数组的后部分
双指针的思路,

  • 指针i用于遍历,指向待处理序列的头部,找出位置不为零的位置
  • 指针j指向当前已经处理好序列的尾部
  • 指针j的左边均非零,指针i到指针j之间均为0

 另外一种思路,将所有非0元素按顺序移动到数组前面,然后缺少几个零就补几个零。

3、代码实现

方法一


void moveZeroes(vector<int>& nums) {
   
       

        for(int i =0,j=0;i<nums.size();++i)
        {
   
            if(nums[i])
            {
   
                swap(nums[i],nums[j]);
                j++;
            }
        }

    }

方法二

void moveZeroes(vector<int>& nums) {
   
        
        int cnt= 0;//统计非零个数
        int k;
        for(k=0;k<nums.size();++k )
        {
   
            if(nums[k])
            {
   
                nums[cnt++] = nums[k];
            }
        }
        //补零
        while(nums.size()-cnt>0)
        {
   
            nums[cnt++] = 0;
        }
    }

相关推荐

  1. leetcode283移动

    2024-01-11 10:46:01       33 阅读
  2. [leetcode] 283. 移动

    2024-01-11 10:46:01       21 阅读
  3. Leetcode 283. 移动

    2024-01-11 10:46:01       16 阅读
  4. 移动算法(leetcode283题)

    2024-01-11 10:46:01       38 阅读
  5. LeetCode 热题 100——283. 移动

    2024-01-11 10:46:01       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-11 10:46:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-11 10:46:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-11 10:46:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-11 10:46:01       20 阅读

热门阅读

  1. C++ 捕获所有异常并拿到错误原因的方法

    2024-01-11 10:46:01       34 阅读
  2. SQL_DQL_执行顺序

    2024-01-11 10:46:01       30 阅读
  3. springboot常用扩展点

    2024-01-11 10:46:01       37 阅读
  4. 在Oracle SQL Plus中抑制SQL命令的输出

    2024-01-11 10:46:01       35 阅读
  5. GBASE南大通用GBase 8a 安装部署

    2024-01-11 10:46:01       28 阅读
  6. Spring的@Configuration注解和@Component 注解的关系

    2024-01-11 10:46:01       26 阅读
  7. zustand状态管理工具(react)

    2024-01-11 10:46:01       33 阅读
  8. fpga目前就业形势咋样?

    2024-01-11 10:46:01       38 阅读
  9. spark分布式解压工具

    2024-01-11 10:46:01       34 阅读
  10. day01打卡

    2024-01-11 10:46:01       40 阅读