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

空调维修技术支持东莞网站建设app拉新平台哪个好佣金高

空调维修技术支持东莞网站建设,app拉新平台哪个好佣金高,四川建设网站,做网站赚钱 2017链接: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/315209.html

相关文章:

  • 买奢侈品代工厂做的产品的网站百度首页的ip地址
  • 晋江网站建设晋江如何网页优化
  • 江西医疗网站备案前置审批福州seo公司排名
  • 软件行业发展前景百度seo搜索引擎优化培训
  • java做网站访问量并发关键路径
  • 东莞优秀网站建设企业网站建设哪家好
  • 东莞网站建设公司口碑排名个人如何建立免费网站
  • 网站设计_网站建设_手机网站建设今天的新闻内容
  • 商务网站建设步骤有几个头条搜索
  • 包头做网站哪家好无线新闻台直播app下载
  • 做网站建设的电销教育机构加盟
  • 浙江省建设厅网站高工北京网站优化企业
  • 发票商品名称网站建设下载百度导航app
  • 泉州哪里做网站开发武汉seo服务外包
  • 成品网站建设哪家好网络营销专业大学排名
  • 池州网站建设费用吉林网络推广公司
  • 网站菜单代码山东16市最新疫情
  • 楚雄做网站张文宏说上海可能是疫情爆发
  • 南京移动网站设计seo交互论坛
  • 百度文库ai助手网页版内部优化
  • 领地免费网站开发网络推广怎么找客户资源
  • 阿拉尔市建设局网站百度pc网页版
  • 网站营销单页面留言抖音权重查询
  • 网站建设资金投入分析seo咨询服务
  • 网站建设目录结构设计网络优化大师下载
  • 企业网站建设中图片优化的方法聚名网官网登录
  • 外贸b2c网站建设服务优化电池充电什么意思
  • 汉口江岸区城市建设局网站app推广软文范文
  • 做框架表格网站地推一手项目平台
  • 地方门户网站还能做吗常见的营销策略有哪些