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

成都装修设计公司网站/湖南 seo

成都装修设计公司网站,湖南 seo,wordpress放广告,帮别人做网站涉嫌诈骗题目链接:283. 移动零 - 力扣(LeetCode) 算法原理 解法一:辅助数组 开辟一个辅助数组,遍历原数组,每次遍历到非0元素的时候,就把它放入辅助数组里,最后让辅助数组覆盖原数组&…

题目链接:283. 移动零 - 力扣(LeetCode)

算法原理

解法一:辅助数组

开辟一个辅助数组,遍历原数组,每次遍历到非0元素的时候,就把它放入辅助数组里,最后让辅助数组覆盖原数组,但这是异地操作,不符合题目原地移动的要求、

                                    

解法二:利用双指针(注意是使用变量充当指针,不是真的第一个指针出来,i = 0,相当于有一个指针指向0下标)

移动零这类题非常经典,叫做数组分块,这道题是数组分两块,将数组在某些特定条件下分成两块,左边部分是非0,右边是0,它是快速排序最核心的一步,解法有特别多种,利用双指针是最经典的解法

定义两个指针:

  • cur:标记非0元素的最后一个位置(上图右边)
  • i:扫描数组

整个数组会结合这个 i 分成三个区域,[0, cur] 非0区域,[cur+1, i-1] 0区域,0[i, n-1]待扫描区域,用题目中的示例,[0,1,0,3,12],cur指向-1下标,i指向0下标,一开始 i 指向0元素,直接i++,0还是在 [cur+1, i-1] 区域的,i 指向非0元素,因为有0的干扰,[cur+1] 位置有个0,可以把0交换到 i 这个位置,再让cur++,就把这个非0元素包含在 [0, cur] 区域了,下图是模拟过程,可以参考理解

分类讨论:

  1. 遇到 0:直接 i++
  2. 遇到 1:swap(cur + 1,i),cur++,i++

 

代码: 

class Solution {
public:void moveZeroes(vector<int>& nums) {for(int i = 0, cur = -1; i < nums.size(); ++i){if (nums[i]) //非0元素//交换完cur+1后cur还要向后走,直接先自增swap(nums[++cur], nums[i]);}}
};

http://www.whsansanxincailiao.cn/news/30280674.html

相关文章:

  • 烟台做网站案例/百度 营销推广靠谱吗
  • 网站建设概况/seo基础教程视频
  • 建网站用自己的主机做服务器/百度关键词优化词精灵
  • 网站开发上线流程图/三生网络营销靠谱吗
  • 临沂做网站设计的公司/云南网络推广服务
  • 淮北矿业工程建设有限公司网站/关键词优化排名
  • python做网站毕业设计/网络营销策划书3000字
  • 珠海网站网站建设/凡科建站多少钱
  • 网站架构图一般包括什么/seo是如何优化
  • 专业网站设计第三方服务/谷歌搜索引擎首页
  • html网站模板 淘宝商城/服装品牌策划方案
  • 栅格布局 网站设计/b站视频推广网站400
  • 高质量的赣州网站建设/十大营销案例分析
  • 怎么使用创客贴网站做图/太原seo网络优化招聘网
  • 营销型集团网站建设/重庆seo推广外包
  • 如何搭建情侣网站/seo博客
  • 网站建设平台方案设计/网络服务公司
  • 用layui做的网站/班级优化大师简介
  • 章丘做网站的公司/百度搜索推广方法
  • 做分析图很好用的网站/seocui cn
  • 真人男女性做爰网站/saas建站
  • 免费学校网站建设/站长工具网站
  • 合肥建设干部学校网站/发帖推广
  • 网站建设温州/广东seo价格是多少钱
  • 自己做网站要会什么/热搜榜上2023年热搜
  • b2c 电子商务网站/杭州网站优化体验
  • 网站的维护及建设/沧州网站建设公司
  • 一个大学网站做的好坏于否的标准/浙江短视频seo优化网站
  • 上海住房和城乡建设部网站官网/站长工具seo综合查询官网
  • 用vue做网站/免费注册个人网站不花钱