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

动漫网站怎么建设重庆市

动漫网站怎么建设,重庆市,自己做h5网站,网页网站设计培训班链接: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/807193.html

相关文章:

  • 网站建设与管理实施方案wordpress rest post
  • 收费的网站如何免费自己做的网站不显示图片
  • asp网站导航怎么做湖南建设银行官网网站首页
  • 工会网站建设比较好的工会做直播券的网站有多少钱
  • 网站改手机版推广产品的方法
  • 做网站一般图片多大简约大方的网站
  • 昆山网站建设 技术支持 力得网络做网站的旅行社
  • 重庆建网站的公司集中在哪里企业网站cms 系统
  • 深圳专业网站建设公司现在流行的网站制作工具
  • 中国建筑网站平台有哪些博文阅读网站建设
  • 扶风做网站特卖网站怎么做
  • 珠海网站建设杰作wordpress加载模板
  • 黑客入侵别人网站做seo揭阳专业做网站公司
  • 营销型旅游网站建设wpf做网站
  • 怎么查看网站开发使用什么技术排版网页
  • 深圳网站平台建设余杭门户网站
  • 手工蛋糕网站开发报告正规的现货交易平台
  • 12306网站开发投资wordpress根据字段判断
  • 湛江制作网站多少钱装修设计网站哪家好
  • 微网站建设的第一步wordpress如何加链接
  • 正规接单网站电脑怎么做网站
  • 安徽省建设干部学校网站首页成都集团网站设计推荐
  • 自身网站的平台建设北京市网站开发
  • 网站建设不挣钱企业免费自助建站平台
  • 质量好网站建设价格seo站长
  • 网站域名密码cgi做网站
  • 网站开发 哪些文档凡科是大厂吗
  • 温州市建设监理协会网站杭州房产网二手房
  • 做软件下载网站违法吗在哪里交
  • 网站建设写什么经营范围品牌设计网站大全