当前位置: 首页 > 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.dtcms.com/a/278216.html

相关文章:

  • 剑指offer58_和为S的连续正数序列
  • 深入理解 LangChain:AI 应用开发的全新范式
  • 人工智能到底是什么?揭开 AI 的神秘面纱
  • Spring @Autowired:依赖注入的核心奥秘
  • markdown-it-mathjax3-pro —— 新一代 Markdown 数学公式渲染插件
  • 代码精进之路
  • NumPy 中 np.c_ 的用法解析
  • Prometheus 第一篇:快速上手
  • 哪些行业的“反内卷”前景更好?
  • DL00454-深度学习牲畜资产管理圈养生猪行为识别含数据集
  • Docker搭建Redis哨兵集群
  • 代码部落 20250713 CSP-S复赛 模拟赛
  • Windows上使用配置Claude Code教程
  • 软件文档体系深度解析:工程视角下的文档架构与治理
  • 知识图谱构建简单分享
  • Task-driven Image Fusion with Learnable Fusion Loss
  • 嵌入式固件 .pkg 打包流程
  • DNS解析过程和nmap端口扫描
  • 大模型之Langchain篇(二)——RAG
  • C语言:流程控制
  • 前四天综合总结
  • 嵌入式 Linux开发环境构建之安装 SSH 软件
  • 【Lmdeploy】大模型本地化部署
  • 技术文章大纲:C++内存泄漏排查大赛
  • Node.js特训专栏-实战进阶:16. RBAC权限模型设计
  • 05.判断日期是工作日还是周末
  • 搭建个人Manus-JManus-00-集合介绍
  • OSPF实验(2)
  • 《夏重庆》——一场暴雨的立体诗篇(DeepSeek赏析)
  • 图形处理算法分类、应用场景及技术解析