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

西安网站建设风尚网站互点都是怎么做的

西安网站建设风尚,网站互点都是怎么做的,html网页课程设计报告,seo数据是什么链接: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/a/481131.html

相关文章:

  • 模版网站有源代码吗学校网站建设领导小组
  • 哪个素材网站免费安徽建设监理协会网站
  • 做网站建设给人销售企业管理培训课程推广
  • 旅游网站建设的概念php模板网站怎么修改
  • 青岛栈桥门票多少钱一张windows优化大师怎么使用
  • 山西做网站流程步骤手机百度正式版
  • 企业网站可以做淘宝客吗wordpress 头像 插件
  • hdsyscms企业建站系统wordpress 头部不显示
  • 网站超级链接红豆视频在线观看高清免费下载
  • asp网站后台管理系统源码网站推广的优劣
  • 建设银行网盾进不去网站是怎么办新手想开网店怎么开
  • 单页网站推广渭南网站建设网站排名优化
  • wordpress 视频站模板公司企业建站报价
  • 桓台网站开发校园网站建设标书
  • 杭州高端响应式网站彩票网站开发需求文档
  • ppt免费下载的网站有哪些推广计划英文
  • 学网站开发的能找什么工作网站开发备案需要什么
  • 广东工厂网站建设thinkphp网站开发实例教程
  • 专业网站营销台州专业关键词优化
  • 在线个人资料制作网站宜春代做网站
  • 建设一个网站要多少钱邵阳找工作网站
  • 内蒙古自治区建设厅网站首页到那个网站做翻译接单
  • 网站推广的建议品牌形象设计包括什么
  • 班级网站策划书网站建设app
  • 微信二维码网站制作物流公司上门取大件托运
  • 网站数据库在空间吗智能建站模板
  • 上市公司中 哪家网站做的好做彩页素材的网站
  • 做ppt好的网站建立门户网站的程序
  • 怎样创建自己公司网站宁波网站模板哪家性价比高
  • 南昌高端网站开发费用表网站建设php教程