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

【LeetCode100】--- 4.移动零【复习回顾】

题目传送门

方法一:使用双指针

class Solution {public void moveZeroes(int[] nums) {int n = nums.length;for(int left = 0,right = 0; right < n; right++){if(nums[right] != 0){int temp = nums[left];nums[left++] = nums[right];nums[right] = temp;}}}
}

重要思想:
通过双指针: 将数组划分为3个区间:
[0,left-1] : 不为0元素
[left,right-1]:全为0元素
[right,n-1]: 待定元素 

算法思维导图 

复杂度分析: 

时间复杂度:
O(n),n为数组元素的个数。

空间复杂度:
O(1),算法只使用了常数级的额外空间(仅交换元素时使用的临时变量temp),因此空间复杂度为常数。

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

相关文章:

  • mmap映射文件
  • 理解 Robots 协议:爬虫该遵守的“游戏规则”
  • HTML 标题标签
  • AI驱动的软件工程(上):人机协同的设计与建模
  • Python 学习之路(十)--常见算法实现原理及解析
  • 深度学习-循环神经网络RNN
  • 谷歌推出Vertex AI Memory Bank:为AI智能体带来持久记忆,支持连续对话
  • MongoDB性能优化实战指南:原理、实践与案例
  • RedisJSON 技术揭秘(五)`JSON.ARRPOP` 原子弹出 修改数组的终极手段
  • Java设计模式之行为型模式(命令模式)介绍与说明
  • 串口A和S的含义以及RT的含义
  • 深入理解观察者模式:构建松耦合的交互系统
  • 设计模式深度解析:单例、工厂、适配器与代理模式
  • Word中的批注显示与修订显示
  • STM32 | HC-SR04 超声波传感器测距
  • 洛谷 P13014:[GESP202506 五级] 最大公因数
  • CentOS系统下前后端项目部署攻略
  • 【MLLM】多模态理解GLM-4.1V-Thinking模型
  • 深度学习图像分类数据集—水质量识别分类
  • java.net.InetAddress
  • Extended Nested Arrays for Consecutive Virtual Aperture Enhancement
  • RHCIA第二次综合实验:OSPF
  • 印度纱丽变革:传统靛蓝工艺在无性别斗篷中的延续
  • CMSIS(Cortex Microcontroller Software Interface Standard)ARM公司为 Cortex-M 系列处理器
  • docker 设置代理以及配置镜像加速
  • VISUALBERT:一个简单且高效的视觉与语言基线模型
  • JavaScript加强篇——第九章 正则表达式高级应用(终)
  • java+vue+SpringBoo中小型制造企业质量管理系统(程序+数据库+报告+部署教程+答辩指导)
  • archive/tar: unknown file mode ?rwxr-xr-x
  • Java行为型模式---策略模式