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

在线装修设计平台宁波百度seo点击软件

在线装修设计平台,宁波百度seo点击软件,wordpress 头像手机旋转,北京网站建设需要花多少钱目录 1. 复写零 2. 算法原理 一般情况下 改为就地操作:从左到右(错误) 从右到左 总结一下解决方法: 如何找到最后一个复写的数 特殊情况 完整步骤: 3. 代码 1. 复写零 题目链接:1089. 复写零 - 力…

目录

1. 复写零

2. 算法原理

一般情况下

改为就地操作:从左到右(错误)

从右到左

总结一下解决方法:

如何找到最后一个复写的数

特殊情况

 完整步骤:

3. 代码


1. 复写零

题目链接:
1089. 复写零 - 力扣(LeetCode)icon-default.png?t=O83Ahttps://leetcode.cn/problems/duplicate-zeros/description/

 


2. 算法原理

其实本题严格来说是一题半模拟半双指针的题目

一般情况

我们可以先进行异地操作,然后再优化成为双指针下的就地操作

   

当Cur遇到非0元素的时候,直接写下来,当遇到0的时候,就需要写两遍.....

   

  

改为就地操作:从左到右(错误

  

将两个指针定义到一个数组上

  

  

但是我们发现:当cur到达第一个0时,dest执行两次写入0,将原本2的值给覆盖掉了,那么整个数组都会出现错误,所以从左到右这个方法是不可以的

从右到左

那我们来试试从右到左能否成功

  

因为是从右到左,所以我们将dest指向最后一个数,cur指向最后一个复写的数,以示例1为例,就是指向4

  

如果cur当前指向的值不为0,那么就直接把cur指向的值写入dest,再同时--

    

如果cur当前指向的值为0,那么cur往左移动一位,dest移动2位

    

  

  

然后我们发现从右到左这种方法是可以的  

总结一下解决方法:

  

1. 先找到最后一个复写的数

  

2. 以从右到左的顺序完成复写操作

如何找到最后一个复写的数

   

双指针算法

  

1. 定义一个cur指向数组里第一个数的位置,dest指向-1的位置

   

因为要把dest定义为结果中最后一个的位置,因此我们只需要判断dest是否跑到最后一个位置就可以了

  

然后按照下面的步骤来重复进行: 

  

然后就找到最后一个复写的数了

  

特殊情况

当查找最后一个复写的数时cur为0时,我们会发现会出现访问越界的问题,会造成内存泄漏的情况

  

  

解决方法也很简单:我们直接将4这个位置也就是n-1变为0,然后再进行cur--,dest-=2

   

 完整步骤:

  

1. 先找到最后一个复写的数

  

2. 处理特殊情况  

3. 以从右到左的顺序完成复写操作


3. 代码

class Solution {
public:void duplicateZeros(vector<int>& arr) {//1. 先找到最后一个复写的数int cur=0,dest=-1,n=arr.size();while(cur<n){//先判断cur位置的值//不为0dest往后移动1步,为0移动2步if(arr[cur]) dest++;else dest+=2;//判断一下dest是否已经到达结束位置if(dest>=n-1) break;//n为size,在数组最后一个位置的下一个位置//cur++cur++;}    //2. 处理特殊情况 //如果dest越界if(dest==n){arr[n-1]=0;cur--;dest-=2;}//3. 以从右到左的顺序完成复写操作while(cur>=0){//如果cur当前指向的值不为0,那么就直接把cur指向的值写入dest,再同时--if(arr[cur]) arr[dest--]=arr[cur--];else{//为0要写2遍//然后cur往左移动一位,dest移动2位arr[dest--]=0;arr[dest--]=0;cur--;}}}
};

未完待续~

http://www.yayakq.cn/news/46983/

相关文章:

  • 追波设计网站官网如何免费做网站优化
  • python 做网站缺点哔哩哔哩推广网站
  • 银行 网站开发 干什么如何建设网站论坛
  • Dw做html网站北京注册公司多少钱
  • 百度网站前面的图片成都创新互联科技有限公司
  • 奉城网站建设手机自适应网站建设
  • 一些建筑设计网站有什么做旅游攻略的网站
  • 网站服务器崩了怎么办广州番禺天气
  • 公司门户网站该怎么做图书馆网站开发需求分析
  • 深圳网站制作的网站实名
  • 建设一个网站需要什么手续免费虚拟主机vps
  • 好的网站推广青青网站怎么做
  • 做网站先用dw还是asp网站建设 图标
  • 广州市企业网站建设易讯网络网站建设
  • 专业公司网站建设vultr服务器做网站
  • 建设厅查询网站如何自己建设淘宝网站
  • 公司如何在网上推广.net网站如何优化
  • oppo网站开发设计南京市建设档案馆网站
  • r语言网站开发做徽章的企业网站
  • 最便宜的网站空间软件开发人员工资标准
  • 网站app免费生成软件建设网站实训
  • 西双版纳网站开发给企业做免费的推广
  • 做公司展示网站手机在线代理网页
  • 网站使用方法一键生成详情页的软件
  • 东莞三网合一网站制作建一个网站模板网
  • 网站建设从化济南企业网站开发
  • 加盟做地方门户网站鲅鱼圈网站开发
  • 平面设计国外网站网站策划方案书
  • 冠县网站建设公司大气网站案例
  • 大专网站建设论文莱芜最新莱芜话题