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

动漫网站开发北京建设网站公司

动漫网站开发,北京建设网站公司,内蒙古建设安全监督站的网站,绍兴网站建设专业的公司目录 方法一:两次遍历法 方法二:单次遍历交换法 两种方法对比 在解决数组中的零移动到末尾的问题时,我们需要保持非零元素的顺序,并原地修改数组。以下是两种高效的解法及其详细分析。 方法一:两次遍历法 思路分析…

目录

方法一:两次遍历法

方法二:单次遍历交换法

两种方法对比


在解决数组中的零移动到末尾的问题时,我们需要保持非零元素的顺序,并原地修改数组。以下是两种高效的解法及其详细分析。


方法一:两次遍历法

思路分析

  1. 第一次遍历:将所有非零元素移动到数组前端。使用指针 j 记录非零元素应插入的位置。遍历数组时,遇到非零元素就将其放到 nums[j],然后 j 递增。

  2. 第二次遍历:将 j 之后的位置全部填充为零。

代码实现

var moveZeroes = function(nums) {let j = 0;// 将非零元素移到前面for (let i = 0; i < nums.length; i++) {if (nums[i] !== 0) {nums[j] = nums[i];j++;}}// 剩余位置填零for (let i = j; i < nums.length; i++) {nums[i] = 0;}return nums;
};

示例解析

  • 输入 [0, 1, 0, 3, 12]

    • 第一次遍历后,非零元素 1, 3, 12 被移到前三位,j = 3

    • 第二次遍历从索引3开始填零,结果为 [1, 3, 12, 0, 0]

复杂度

  • 时间复杂度:O(n),两次独立遍历。

  • 空间复杂度:O(1),仅使用常量空间。


方法二:单次遍历交换法

思路分析

  • 使用双指针 i(遍历数组)和 j(标记待插入位置)。当 nums[i] 非零时,将其与 nums[j] 交换,并递增 j

  • 此方法通过交换操作,逐步将非零元素移到前面,零被交换到后面。

代码实现

var moveZeroes = function(nums) {let j = 0;for (let i = 0; i < nums.length; i++) {if (nums[i] !== 0) {if (i !== j) { // 避免不必要的原地交换[nums[j], nums[i]] = [nums[i], nums[j]];}j++;}}return nums;
};

示例解析

  • 输入 [0, 1, 0, 3, 12]

    • i=0,元素为0,跳过。

    • i=1,元素1,交换到 j=0,数组变为 [1, 0, 0, 3, 12]j=1

    • i=3,元素3,交换到 j=1,数组变为 [1, 3, 0, 0, 12]j=2

    • i=4,元素12,交换到 j=2,最终结果为 [1, 3, 12, 0, 0]

复杂度

  • 时间复杂度:O(n),仅一次遍历。

  • 空间复杂度:O(1),原地交换。


两种方法对比
方法优点缺点
两次遍历法逻辑简单,直接覆盖需要额外填零的步骤
单次遍历交换法一次遍历完成,更高效交换操作可能稍慢

总结
两种方法均满足题目要求,选择依据具体场景。若数组零较多,两次遍历法可能更优;若零较少,交换法更高效。两种方法均保证了非零元素的顺序,且原地操作,符合题目要求。

http://www.dtcms.com/wzjs/525541.html

相关文章:

  • 网站作弊天津seo排名费用
  • wordpress微信采集按钮怎么优化百度关键词
  • 建水网站开发百度搜索关键词排名优化技术
  • 网站建设默认字体永久免费建站系统
  • 黎城网站建设品牌推广计划书怎么写
  • 南阳网站建设.com网络推广公司哪家好
  • 网站不用域名比较好用的搜索引擎
  • 企业网站建设需要准备资料重庆自动seo
  • 香奈儿网站建设目标百度seo优化教程免费
  • 恶搞网站怎么做百度竞价关键词价格查询
  • 企业网站备案时间南昌seo管理
  • 单页网站产品今日热点新闻头条
  • 网站建设公司上海做网站公司排名谷歌seo外包公司哪家好
  • 网站建设讯美seo教程搜索引擎优化入门与进阶
  • 空包网网站怎么做的写一篇软文推广自己的学校
  • 网站的友情链接怎么做中国百强企业榜单
  • 企业建站找哪家短视频营销常用平台有
  • 天水网站开发采集站seo赚钱辅导班
  • 青州网站建设湖南优化电商服务有限公司
  • 做接口自动化是网站登录加密搜索引擎优化自然排名
  • 做网站答辩北京竞价托管代运营
  • 网站建设项目报价seo优化一般优化哪些方面
  • 怎么做网站在线客服谷歌搜索引擎 google
  • 国内wordpress 模板seo文章推广
  • 给网站做解答是干嘛的seo的培训班
  • 做网站字体规范今日热点头条
  • 网易那个网站可以做字幕广东最新新闻
  • 网站备案教育审批号企业百度推广怎么收费
  • 做网站主要学什么条件百度快速优化推广
  • 泉州制作网站公司襄阳网站seo