移动零

embedded/2024/11/20 2:17:55/

移动零

  • 1、题目描述
  • 2、解答思路

1、题目描述

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

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

在这里插入图片描述

2、解答思路

已知数组后端若干元素为0,因此只需遍历查询到非零元素并依次赋值到数组前端(无需交换),最后将后端的值均设置为0即可。

java">class Solution {public void moveZeroes(int[] nums) {// 用于记录非零元素的下标int index = 0;for (int i = 0; i < nums.length; i++) {if(nums[i]!=0) {// 将非零元素依次赋值给nums[index],因此相对顺序也不会变nums[index++] = nums[i];}}// 从最后一个非零元素到末尾,均赋值为0for (int i = index; i < nums.length; i++) {nums[i] = 0;}}
}
  • 本题关键点在于下标 i 和 index 的变化,i 用于遍历整个数组,index 用于存储非零元素。
  • 时间复杂度:o(n)。主要时间花销是for循环遍历整个数组。

http://www.ppmy.cn/embedded/138939.html

相关文章

EtherNet/IP从站转ModbusTCP主网关是一款 ETHERNET/IP 从站功能的通讯网关

EtherNet/IP从站转ModbusTCP主网关是一款 ETHERNET/IP 从站功能的通讯网关。该产品主要功能是将各种 MODBUS-TCP 设备接入到 ETHERNET/IP 网络 中。本网关连接到 ETHERNET/IP 总线中做为从站使用&#xff0c;连接到 MODBUS-TCP总线中做为主站或从站使用。 来百度APP畅享高清图…

实现了两种不同的图像处理和物体检测方法

这段代码实现了两种不同的图像处理和物体检测方法&#xff1a;一种是基于Canny边缘检测与轮廓分析的方法&#xff0c;另一种是使用TensorFlow加载预训练SSD&#xff08;Single Shot Multibox Detector&#xff09;模型进行物体检测。 1. Canny边缘检测与轮廓分析&#xff1a; …

【flutter】flutter2升级到3.

文章目录 背景flutter2-3升级的修改之处界面效果其它 背景 以这个 https://github.com/aa286211636/Flutter_QQ 为例子&#xff0c; 升级下看看 flutter2-3升级的修改之处 flatButton变为TextButton设备屏幕尺寸获取: Screen.width(context)变为MediaQuery.of(context).size…

css 溢出隐藏显示省略号

单行文字超出隐藏&#xff1a; 要使用CSS使超出容器的文本隐藏并以省略号显示&#xff0c;可以使用以下属性&#xff1a; overflow:hidden: 设置为 hidden 以隐藏超出容器的内容。 text-overflow:ellipsis: 设置为 ellipsis 以显示省略号。 white-space:nowrap: 设置为 nowr…

简单的爬虫脚本编写

一、数据来源分析 想爬取一个网站的数据&#xff0c;我们首先要进行数据分析。通过浏览器F12开发者工具栏进行抓包&#xff0c;可以分析我们想要的数据来源。 通过关键字搜索&#xff0c;可以找到相对应的数据包 二、爬虫实现 需要用到的模块为&#xff1a;request&#xf…

数据库基本概念学习笔记

1.数据库是什么 数据库是按照数据结构来组织、存储和管理数据的仓库&#xff0c;它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合。 1.1数据库的组成部分 数据&#xff1a;是数据库中存储的基本对象&#xff0c;包括文字、数字、图像、声音等各种类型…

15分钟学 Go 第 58 天 :复习与总结

复习与总结 1. 定位薄弱环节 首先&#xff0c;回顾你在学习Go语言过程中遇到的困难。我们可以将学习内容按“基础概念”、“并发编程”、“错误处理”、“接口和类型系统”等几个方面进行总结。这将帮助我们清晰地确定复习的重点。 复习表格 学习领域薄弱环节复习方法例子代…

11.12.2024刷华为OD-集合的使用,递归回溯的使用

文章目录 HJ41 集合的使用HJ43 迷宫问题--递归回溯的使用语法知识记录 HJ41 集合的使用 HJ43 迷宫问题–递归回溯的使用 def dfs(x, y, path, grid):n len(grid)m len(grid[0])if x n-1 and y m-1:for cor in path:print("({},{})".format(cor[0],cor[1]))# 判断…