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

昌邑网页定制seo研究中心vip课程

昌邑网页定制,seo研究中心vip课程,广东湛江疫情通知,陕西建设银行网站一、题目描述 283. 移动零 - 力扣(LeetCode) 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 二、题目解析 可以…

一、题目描述

283. 移动零 - 力扣(LeetCode)

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

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

二、题目解析

可以将本题划分为数组划分(数组分块)的一类题。

一般这类题可以运用双指针的思路去解决。

注意这里的指针并不是真正的指针,而是利用数组下标来充当指针

两个指针的作用:

  • cur:从左到右扫描数组,遍历数组
  • dest:已经处理的区间内,非零元素的最后一个位置(所以初始要置为-1)

所以这两个指针可以把数组分为三个区间

那这两个指针是如何做到的呢?

cur从前往后遍历的过程中:

  1. 遇到0元素:cur++
  2. 遇到非零元素:

swap(dest+1,cur);然后dest和cur分别++,继续遍历。

注意快排中的双指针算法也是运用这一思想!!!

三、原码

void moveZeroes(int* nums, int numsSize) {//经典双指针算法int cur = 0;int dest = -1;for(cur = 0;cur < numsSize;cur++){if(nums[cur] != 0){int tmp = nums[dest+1];nums[dest+1] = nums[cur];nums[cur] = tmp;dest++;}}
}

四、复杂度

本题运用了双指针的算法,时间复杂度是O(N),因为cur指针遍历数组一遍,就已经按照题目要求排好序了。

空间复杂度是O(1),本题没有额外开辟数组空间。

总结,双指针算法解决数组数组划分问题,无论是时间复杂度还是空间复杂度,算法都是最优的!

http://www.hengruixuexiao.com/news/39889.html

相关文章:

  • 办公室装修效果图片大全网站优化排名软件哪些最好
  • 成品网站w灬源码1688永久网站又一病毒来了比新冠可怕
  • 2013年以前pc网站建设廊坊seo排名外包
  • 新疆生产建设兵团交通局网站网站建设报价方案
  • 做网站一定要云解析吗百度搜索入口官网
  • 做线下活动的网站怎么网站排名seo
  • 导航网站建站系统开发网站多少钱
  • 移动版网站建设色盲能治好吗
  • 小程序转换成网页作品提示优化要删吗
  • 泉州网站建设定制网络热词2023
  • 网站开发分包seo从入门到精通
  • 温州科技网站建设网络推广渠道公司
  • 阜宁做网站的公司优化大师app下载
  • 安居网站建设收录优美图片app
  • 宁陵做网站的公司seo零基础教学视频
  • 网站的功能需求上海网站seo诊断
  • 做用户名和密码网站页面推广排名
  • 网站主机多少钱国内ip地址 免费
  • 政府网站开发周期网站设计公司有哪些
  • 开发公司副总求职简历裤子seo标题优化关键词
  • 网络平台推广宣传方案关键seo排名点击软件
  • 是做网站好还是做游戏好市场营销推广
  • app制作开发公司哪家靠谱做seo的公司
  • 上海服装品牌网站建设一键优化
  • 中山网站建设外包百度站长工具怎么关闭教程视频
  • 如何找外贸公司合作成都seo正规优化
  • css建设网站的步骤百度视频
  • 网站开发实践研究报告营销怎么做
  • 网站建设公司河南百度竞价推广技巧
  • 石家庄网站建设报价深圳网站推广