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

每日一题---移动零

一、题目链接:283. 移动零 - 力扣(LeetCode)

二、解题思路 

我们可以用一个right指针来扫描整个数组,然后用一个left指针来记录非零序列的最后一个位置,这样的话,在遍历期间我们可以将数组分为两个部分,第一个部分是[0,left],这一区间全为非零元素,第二个部分是[left+1,right],这一部分全是0,第三个部分是[right+1,nums.length-1],这一部分是还未扫描到的区间 。具体步骤如下:

1.定义两个变量left=-1,right=0。

2.用循环遍历数组,当right指向的数组不为0时,left++,交换left和right指向的元素,然后right++

3、当right指向的数组为0时,依旧right++

三、代码实现 

class Solution {public void moveZeroes(int[] nums) {int left=-1,right=0;while(right<nums.length){if(nums[right]!=0){left++;swap(nums,right,left);}right++;}}public static void swap(int[] nums,int i,int j){int tmp=nums[i];nums[i]=nums[j];nums[j]=tmp;}
}

http://www.xdnf.cn/news/14869.html

相关文章:

  • 第六章 进阶04 尊重
  • GreatSQL启动崩溃:jemalloc依赖缺失问题排查
  • 获取印度股票市场列表、查询IPO信息以及通过WebSocket实时接收数据
  • Git合并分支的两种常用方式`git merge`和`git cherry-pick`
  • 裸金属服务器有什么用途?
  • 数据仓库分层架构解析:从理论到实战的完整指南​​
  • 1. python开发小笔记
  • 【Semantic Kernel核心组件】planner:大模型时代的智能任务编排引擎
  • ASP.NET常见安全漏洞及修复方式
  • ARINC818协议(五)
  • xxljob 执行器流程-笔记
  • PHP腾讯云人脸核身生成 SDK 接口调用步骤使用签名
  • Vue3中provide和inject的用法示例
  • opencv函数展示3
  • Git LFS 学习笔记:原理、配置、实践与心路历程
  • 直播人脸美型核心技术详解:卷积神经网络与图像增强在美颜SDK中的应用
  • pdfjs库使用记录1
  • Web3区块链网络中数据隐私安全性探讨
  • 深度解析生成对抗网络:原理、应用与未来趋势
  • #systemverilog# 进程控制问题#(八)关于#0 问题的使用(三)
  • 全志H5,NanopiKP1lus移植QT5.12记录
  • 如何在 Electron 应用中安全地进行主进程与渲染器进程通信
  • 通过特定协议拉起 electron 应用
  • electron 渲染进程按钮创建新window,报BrowserWindow is not a constructor错误;
  • 嵌入式设备网络的动态ID分配机制实现
  • 极狐GitLab 用户 API 速率限制如何设置?
  • CenterTrack
  • DNS解析失败怎么解决?
  • 【Spring Boot 源码学习】深入 ConfigurableEnvironment 的初始化过程
  • 论文阅读笔记——Mixtral of Experts