当前位置: 首页 > news >正文

二、双指针——5. 移动零

二、双指针——5. 移动零

  • 题目描述
  • 示例
    • 示例1:
    • 示例2:
  • 思路
  • 代码

题目描述

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

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

示例

示例1:

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

示例2:

输入: nums = [0]
输出: [0]

思路

从左到右遍历 nums[i]。

每次遇到 nums[i]不等于0 的情况,就把 nums[i] 移动到最左边的空位上,也就是交换 nums[i] 和 nums[i0]。交换后把 i0和 i 都加一,从而使【[i0 ,i−1] 都是空位】这一性质仍然成立。

代码

class Solution {
       public void moveZeroes(int[] nums) {
            int left = 0;
            for (int i = 0; i < nums.length; i++) {
                if (nums[i] != 0){
                    int temp = nums[i];
                    nums[i] = nums[left];
                    nums[left] = temp;
                    left++;
                }
            }
        }
}
http://www.dtcms.com/a/44233.html

相关文章:

  • SQLAlchemy系列教程:SQLAlchemy快速入门示例项目
  • 曹操智行构建国内首个全域自研闭环智驾生态
  • 安装Oracle23ai的教程
  • c语言基础第14节《指针》
  • 深度学习五大模型:CNN、Transformer、BERT、RNN、GAN详细解析
  • tauri2+typescript+vue+vite+leaflet等的简单联合使用(一)
  • 链表的概念及功能实现
  • 【数字信号处理:从原理到应用的深度剖析】
  • Grafana服务安装并启动
  • C#内置委托(Action)(Func)
  • anaconda配置pytorch
  • 深度学习_第二轮
  • 数据结构——布隆过滤器
  • 天锐绿盾软件|外设管控具体有哪些措施?
  • 正交投影与内积空间:机器学习的几何基础
  • 考研复试问题总结-数据结构(1)
  • 把GB型材库放入solidwork中点击库无法应
  • HTTP与HTTPS:从原理到实践,深入解析Web通信的奥秘
  • 扬帆启航于数据结构算法之雅舟旅程,悠然漫步于C++秘境——Leetcode刷题之用栈实现队列,用队列实现栈
  • Vue3 + Vite + TS,使用 Pinia
  • 程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图(水文,勿三)
  • 通过 python3 指令如何建立虚拟环境的办法
  • React + TypeScript 实现 SQL 脚本生成全栈实践
  • 数据集笔记:新加坡 一些交通的时间序列统计量
  • 不同版本的BLE和WiFi有什么区别?
  • 【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)、CT(匀速转弯)和CA(匀加速),滤波使用EKF。附完整代码
  • LeetCode 每日一题 2025/2/24-2025/3/2
  • 如何把word文档整个文档插入到excel表格里?
  • 内存管理技巧与任务堆栈优化详解(结合六足机器人项目)
  • 火山引擎 DeepSeek R1 API 使用小白教程