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

网站建设最新流行网站定制的公司

网站建设最新流行,网站定制的公司,我被朋友拉进彩票网站说做代理,网站访问统计报告模板链接:1089. 复写零 - 力扣(LeetCode) 双指针的基本思想: 首先根据异地操作确定指针的基本步骤,再将异地操作优化成原地操作的双指针解法 题解: 异地操作: fast指针指向原数组,…

链接:1089. 复写零 - 力扣(LeetCode) 

双指针的基本思想:

首先根据异地操作确定指针的基本步骤,再将异地操作优化成原地操作的双指针解法

题解:

异地操作:

fast指针指向原数组,slow指向新数组。fast指针遍历原数组,如果fast遇到0,slow指针位置和其下一位置都为0,slow+=2;如果fast遇到非0,slow指针位置拷贝该非0元素,slow+=1。当slow超过数组大小时停止。

优化后的双指针本地操作:

fast和slow初始都为0,fast指针遍历数组,如果fast遇到0,slow位置及其下一位置都为0,slow+=2。但是很明显这样是行不通的,因为slow连续两个位置都是0,会覆盖还没有被fast遍历的元素,因此必须另辟蹊径。

逆序进行双指针操作,但是由于不能在超过数组长度的位置复写,所以要先确定最后一个复写的数。首先使用双指针正向遍历数组,不做任何操作,仅仅确定最后一个复写数的位置,让fast遍历数组,遇到0,slow+=2,遇到非0.slow+=1,当slow到达n-1位置时停止,不做复写操作。此时fast和slow都确定好了位置,从此处开始逆向复写数组,解决问题。

(注意:使用双指针正向遍历数组确定最后一个复写数位置时,当最后一个复写数为0时,slow会越界,因此必须进行额外处理,如果最后一个复写数为0,在逆序复写时,只将slow-1的位置复写为0,因为slow位置越界了)

class Solution {
public:void duplicateZeros(vector<int>& arr) {//确定逆序开始的位置int fast = 0, slow = -1;int n = arr.size();for (; fast < n; fast++){if (arr[fast] == 0) slow += 2;else slow += 1;if (slow >= n-1) break;}//处理边界条件if (slow == n){arr[slow - 1] = 0;slow -= 2;fast -= 1;}//逆序复写0for (; slow >= 0; fast--){if (arr[fast] != 0){arr[slow] = arr[fast];slow -= 1;}else{arr[slow] = arr[slow - 1] = 0;slow -= 2;}}}
};
http://www.dtcms.com/wzjs/170312.html

相关文章:

  • 网站开发实习过程高端网站制作
  • 营销型网站规划步骤公司网络推广的作用
  • 怎么做个网站行业网站有哪些平台
  • 南阳疫情最新情况广州网站建设方案优化
  • 网站企业建设手机地图app下载安装
  • 甘肃省建设工程网站百度竞价排名的优缺点
  • 做网站需要固定ip全网软文推广
  • 哪个网站可以做中国代购重庆seo搜索引擎优化优与略
  • 怎样做千年私服网站google搜索优化
  • 做网站必备徐州seo公司
  • 重庆工程建设信息网站百度小说搜索热度排行榜
  • 网站模板的使用网站页面seo
  • 27WordPress主题郑州百度推广seo
  • 专业手机网站建设多少钱企业网站建设流程
  • 做神马网站快速网络营销的工具和方法有哪些
  • 今日头条模板WordPressseo应该如何做
  • 设计师互动网站上海seo网站策划
  • 美容医疗 网站建设seo优化包括什么
  • 黄石做网站要多少钱南京关键词优化软件
  • 石材网站建设多少钱手机网站建设案例
  • wordpress 默认账号天津谷歌优化
  • 公司建网站多少网站seo提升
  • 贵阳市 网站建设注册平台
  • 海珠网站建设制作谷歌外贸网站
  • 代做机械毕业设计网站制作网站的步骤
  • 网站建设首先要国外免费源码共享网站
  • 不用开源做网站怎么制作个人网页
  • 石城网站建设html制作网页代码
  • 泉州网站建设价钱百度 营销推广靠谱吗
  • 短视频网站开发教程海外域名