移动零 ----双指针

题目链接

题目:

分析: 上述题目, 是将数组分块, 分为前半非零, 后半零, 这种数组分块题我们首先想到双指针 

思路:

  1. 定义两个指针, 一个cur 一个dest, cur用来遍历数组, dest 指向分界处的第一个零位置, 将数组分块
  2. 首先让cur = 0; dest  = 0;
  3. cur 遍历数组, 如果cur == 0, 那么cur++, dest不动, 指向0
  4. 如果cur != 0, 那么交换cur下标和dest下标的位置, cur++,dest++

代码:

class Solution {
    public void moveZeroes(int[] nums) {
        int dest = 0;
        for(int cur = 0;cur < nums.length;cur++){
            if(nums[cur] !=0){
                int tmp = nums[cur];
                nums[cur] = nums[dest];
                nums[dest] = tmp;
                dest++;
            }
        }

    }
}

相关推荐

  1. 力扣热题100_指针_283_移动

    2024-04-27 21:04:03       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 21:04:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 21:04:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 21:04:03       82 阅读
  4. Python语言-面向对象

    2024-04-27 21:04:03       91 阅读

热门阅读

  1. 微前端micro-app 子应用 调用父应用方法

    2024-04-27 21:04:03       37 阅读
  2. 网络分析工具:tcpdump 安装与使用

    2024-04-27 21:04:03       34 阅读
  3. 村庄集中式生活废水处理设备技术工艺

    2024-04-27 21:04:03       94 阅读
  4. 【公务员专场】选调、省考和国考

    2024-04-27 21:04:03       26 阅读
  5. 函数为什么要防抖

    2024-04-27 21:04:03       27 阅读
  6. c++中的__declspec(dllexport) 和 __declspec(dllimport)

    2024-04-27 21:04:03       126 阅读
  7. 笔记:oracle报错ORA-55941

    2024-04-27 21:04:03       35 阅读
  8. 小红书笔记的规则权重算法7个要点

    2024-04-27 21:04:03       30 阅读
  9. c++ shared_ptr和weak_ptr结合应用实验

    2024-04-27 21:04:03       35 阅读
  10. c/c++的关键字 inline 介绍

    2024-04-27 21:04:03       24 阅读