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

刷题笔记 day2

  力扣   1089  复写零

思路:双指针

第一步:利用指针 cur 去记录最后一位要复写的数 , 利用指针 dest 指向最后一位数所要复写的位置;

实现过程:最开始 cur 指向0,dest 指向 -1 , 当arr[cur] != 0 时,dest 走两步 ,否则 走一步 ; 判断dest是否已经处于数组最末端的位置 或者已经越界;

第二步: 如果数组已经越界 ,让 arr[arr.size()-1] = 0;  dest -= 2; cur --;

第三步: 依次按要求从后往前完成复写。

class Solution {
public:void duplicateZeros(vector<int>& arr) {int cur = 0 , dest = -1;//确定要复习的最后一位数,使用cur指针指向while(cur < arr.size()){if(arr[cur] !=0){dest++;}else{dest +=2;}//当dest指针指向数组最后一个位置或者越界一位,跳出循环,不再让cur 往后走if(dest >= arr.size()-1){break;}++cur;}// 如果dest处于arr.size()的位置if(dest == arr.size()){arr[arr.size()-1] = 0;dest -=2;--cur;}// 从右往左依次完成复while(cur >=0){if(arr[cur]){arr[dest--] = arr[cur--];}else{arr[dest--] = 0;arr[dest--] = 0;cur--;}}}
};

 

http://www.lryc.cn/news/104153.html

相关文章:

  • 回归预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测
  • 使用UltraISO制作麒麟v10系统盘
  • 【RabbitMQ】之消息的可靠性方案
  • 性能测试/负载测试/压力测试之间的区别
  • Mybatis ,Mybatis-plus列表多字段排序,包含sql以及warpper
  • sonarqube PHP编码规范检查
  • Kylin 麒麟 Qt软件 QtCreator 中文输入法问题
  • 租赁固定资产管理
  • 【Kubernetes】Kubernetes的概念
  • 抖音短视频seo源码矩阵系统开发
  • npm install pnpm -g报错解决!
  • vue2、vue3生命周期详解以及对比
  • JSON动态生成表格
  • C# Winform中使用SendMessage方法(发送消息与接收消息)
  • Netty各组件基本用法、入站和出站详情、群聊系统的实现、粘包和拆包
  • Day03-作业(AxiosElementUI)
  • 低代码开发平台源码:基于模型驱动,内置功能强大的建模引擎,零代码也能快速创建智能化、移动化的企业应用程序
  • 下载JMeter的历史版本——个人推荐5.2.1版本
  • 2023-07-30 LeetCode每日一题(环形链表 II)
  • 设计模式——简单工厂模式
  • AnimatedVectorDrawable矢量图动画的使用和修改
  • 【C++】—— 多态的基本介绍
  • 一文详解:自动化测试工具——Selenium
  • [模版总结] - 集合划分类DFS模版
  • JavaScript中复制新的数组与原数组删除某个值——不影响新复制的数组的方法详解
  • easyui主表子表维护页面
  • k8s exam
  • C#,中国福利彩票《刮刮乐》的数学算法(02)——时来运转
  • 我的观影记录表【个人向】
  • 网络安全策略应包含哪些?