每日一leetcode:移动零

目录

解题过程:

描述:

分析条件:

解题思路:

通过这道题可以学到什么:


解题过程:

描述:
 

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

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

示例 1:

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

示例 2:

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

提示

  • 1 <= nums.length <= 104
  • -231 <= nums[i] <= 231 - 1

分析条件:

第一遍的思路:(错误思路)

当数组的长度为1时,直接返回这个数组

当数组的长度大于1时,我们从数组的第一个数开始遍历,遇到0,交换
比如 1 0 2  0 3  我们就把它变成 1 2 0 3 0 把遇到的第一个0交换到末尾
 

class Solution {public void moveZeroes(int[] nums) {if(nums.length == 1){return;}   // 0 1 0 3 12for(int i = 0;i < nums.length;i++){if(nums[i] != 0){continue;}for(int j = i;j < nums.length - 1;j++){int temp = nums[j];nums[j] = nums[j + 1];nums[j + 1] = temp;}}}
}

这种写法只通过了28/75个用例,原因是 [0,0,1] 如果0连续,那么这种逻辑会漏掉一些0

正确解题思路:

class Solution {public void moveZeroes(int[] nums) { 1 1 0 //1 2 0 3 12int n = nums.length;//left为左指针,left索引左边的数均为已处理数int left = 0;//rigth为右指针,right索引不断右移寻找非0数int right = 0;while(right < n){
//(nums[right] != 0时再交换,这段逻辑可以保证left和right一起移动到第一个num[n] = 0处,
//此时left = n,right = n,下一步left = n,right = n + 1,right开始寻找非0数if(nums[right] != 0){int temp = nums[right];nums[right] = nums[left];nums[left] = temp;left++;}right++;}}
}

通过这道题可以学到什么:

1.数组的长度,nums.length 后面不加()!
2.while循环中,我们要用nums[right != 0]作为条件,这样可以带着left和right一起移动到数组中第一个0处

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94289.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6-Django项目实战-[dtoken]-用户登录模块

1.创建应用 python manage.py startapp dtoken 2.注册应用 settings.py中注册 3.匹配路由4.编写登录功能视图函数 import hashlib import json import timeimport jwt from django.conf import settings from django.http import JsonResponse from user.models import UserPro…

Axure日期日历高保真动态交互原型

在数字化产品设计中&#xff0c;日期日历组件作为高频交互元素&#xff0c;其功能完整性与用户体验直接影响着用户对产品的信任度。本次带来的日期日历高保真动态交互原型&#xff0c;依照Element UI、View UI等主流前端框架为参考&#xff0c;通过动态面板、中继器、函数、交互…

【YOLOv4】

YOLOv4 论文地址&#xff1a;&#xff1a;【https://arxiv.org/pdf/2004.10934】 YOLOv4 论文中文翻译地址&#xff1a;【深度学习论文阅读目标检测篇&#xff08;七&#xff09;中文版&#xff1a;YOLOv4《Optimal Speed and Accuracy of Object Detection》-CSDN博客】 yol…

【秋招笔试】2025.08.03虾皮秋招笔试-第一题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 01. 蛋糕切分的最大收益 问题描述 K小姐经营着一家甜品店,今天她有一块长度为 n n n 厘米的长条蛋糕需要切分。根据店里的规定,她必须将蛋糕切成至少 2 2

2.0 vue工程项目的创建

前提准备.需要电脑上已经安装了nodejs 参考 7.nodejs和npm简单使用_npmjs官网-CSDN博客 创建vue2工程 全局安装 Vue CLI 在终端中运行以下命令来全局安装 Vue CLI&#xff1a; npm install -g vue/cli npm install -g 表示全局安装。vue/cli 是 Vue CLI 的包名。 安装完成后…

视觉图像处理中级篇 [2]—— 外观检查 / 伤痕模式的原理与优化设置方法

外观缺陷检测是工业生产中的关键环节&#xff0c;而伤痕模式作为图像处理的核心算法&#xff0c;能精准识别工件表面的划痕、污迹等缺陷。掌握其原理和优化方法&#xff0c;对提升检测效率至关重要。一、利用伤痕模式进行外观检查虽然总称为外观检查&#xff0c;但根据检查对象…

ethtool,lspci,iperf工具常用命令总结

ethtool、lspci 和 iperf 是 Linux 系统中进行网络硬件查看、配置和性能测试的核心命令行工具。下面是它们的常用命令分析和总结&#xff1a; 核心作用总结&#xff1a; lspci: 侦察兵 - 列出系统所有 PCI/PCIe 总线上的硬件设备信息&#xff0c;主要用于识别网卡型号、制造商、…

DAY10DAY11-新世纪DL(DeepLearning/深度学习)战士:序

本文参考视频[双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩_bilibili 参考文章0.0 目录-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授-CSDN博客 1深度学习概论 1.举例介绍 lg房价预测&#xff1a;房价与面积之间的坐标关系如图所示&#xff0c;由线性回归…

flutter release调试插件

chucker_flutter &#xff08;只有网络请求的信息&#xff0c;亲测可以用&#xff09; flutter&#xff1a;3.24.3 使用版本 chucker_flutter: 1.8.2 chucker_flutter | Flutter package void main() async {// 可以控制显示ChuckerFlutter.showNotification false;ChuckerF…

基于开源链动2+1模式AI智能名片S2B2C商城小程序的私域流量拉新策略研究

摘要&#xff1a;私域流量运营已成为企业数字化转型的核心战略&#xff0c;其本质是通过精细化用户运营实现流量价值最大化。本文以“定位、拉新、养熟、成交、裂变、留存”全链路为框架&#xff0c;聚焦开源链动21模式、AI智能名片与S2B2C商城小程序的协同创新&#xff0c;揭示…

华为云云服务高级顾问叶正晖:华为对多模态大模型的思考与实践

嘉宾介绍&#xff1a;叶正晖&#xff0c;华为云云服务高级顾问&#xff0c;全球化企业信息化专家&#xff0c;从业年限超过23年&#xff0c;在华为任职超过21年&#xff0c;涉及运营商、企业、消费者、云服务、安全与隐私等领域&#xff0c;精通云服务、安全合规、隐私保护等领…

【机器学习(二)】KNN算法与模型评估调优

目录 一、写在前面的话 二、KNN&#xff08;K-Nearest Neighbor&#xff09; 2.1 KNN算法介绍 2.1.1 概念介绍 2.1.2 算法特点 2.1.3 API 讲解 2.2 样本距离计算 2.2.1 距离的类型 &#xff08;1&#xff09;欧几里得距离&#xff08;Euclidean Distance&#xff09; …

《Uniapp-Vue 3-TS 实战开发》实现自定义头部导航栏

本文介绍了如何将Vue2组件迁移至Vue3的组合式API。主要内容包括:1) 使用<script setup lang="ts">语法;2) 通过接口定义props类型约束;3) 用defineProps替代props选项;4) 将data变量转为ref响应式变量;5) 使用computed替代计算属性;6) 将created生命周期…

GitCode疑难问题诊疗

问题诊断与解决框架通用问题排查流程&#xff08;适用于大多数场景&#xff09; 版本兼容性验证方法 网络连接与权限检查清单常见错误分类与解决方案仓库克隆失败场景分析 HTTP/SSH协议错误代码解读 403/404错误深层原因排查高级疑难问题处理分支合并冲突的深度解决 .gitignore…

告别物业思维:科技正重构产业园区的价值坐标系

文 | 方寸控股引言&#xff1a;当产业园区的竞争升维为“科技军备竞赛”&#xff0c;土地红利消退&#xff0c;政策优势趋同&#xff0c;传统园区运营陷入增长困局。当招商团队还在用Excel统计企业需求&#xff0c;当能耗管理依赖保安夜间巡检&#xff0c;当企业服务停留在“修…

GitHub 热门项目 PandaWiki:零门槛搭建智能漏洞库,支持 10 + 大模型接入

转自&#xff1a;Khan安全团队你还没有自己的漏洞库吗&#xff1f;一条命令教你搭建。PandaWiki 是一款 AI 大模型驱动的开源知识库搭建系统&#xff0c;帮助你快速构建智能化的 产品文档、技术文档、FAQ、博客系统&#xff0c;借助大模型的力量为你提供 AI 创作、AI 问答、AI …

Python 程序设计讲义(55):Python 的函数——函数的参数

Python 程序设计讲义&#xff08;55&#xff09;&#xff1a;Python 的函数——函数的参数 目录Python 程序设计讲义&#xff08;55&#xff09;&#xff1a;Python 的函数——函数的参数一、声明形参二、传递实参&#xff08;位置参数&#xff09;1、在调用函数进行传递参数时…

机器学习sklearn:支持向量机svm

概述&#xff1a;现在就只知道这个svm可以画出决策边界&#xff0c;对数据的划分。简单举例就是&#xff1a;好的和坏的数据分开&#xff0c;中间的再验证from sklearn.datasets import make_blobs from sklearn.svm import SVC import matplotlib.pyplot as plt import numpy …

Django ORM 详解:从入门到进阶,掌握数据库操作的核心

在 Django 中&#xff0c;ORM&#xff08;Object Relational Mapping&#xff0c;对象关系映射&#xff09; 是框架的核心之一。它允许你使用 Python 代码来操作数据库&#xff0c;而无需编写原始 SQL 语句。Django ORM 不仅简化了数据库操作&#xff0c;还提升了代码的可读性、…

mac中使用gvm install没有效果

问题表现&#xff1a; mac使用了gvm install一直没有效果&#xff08;添加代理也没效果&#xff09;&#xff0c;效果如下图所示&#xff0c;始终卡在downloading&#xff0c;但是gvm version是正常的解决办法&#xff1a; 手动安装go的版本&#xff08;版本号自行选择&#xf…