当前位置: 首页 > 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++;
                }
            }
        }
}

相关文章:

  • 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
  • php能建立网站吗/社交媒体营销策略有哪些
  • 做的网站怎么上线/app推广拉新工作可靠吗
  • 个人网站设计规划书/黄桃图片友情链接
  • 加快网站平台建设/打开网址资料网站
  • 深圳网站制作07551/百度网页怎么制作
  • 清新网站设计/想学网络营销怎么学