LeetCode1089复写零
问题:
给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。
注意:请不要在超过该数组长度的位置写入元素。
要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。
示例 1:
输入:[1,0,2,3,0,4,5,0]
输出:null
解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]
示例 2:
输入:[1,2,3]
输出:null
解释:调用函数后,输入的数组将被修改为:[1,2,3]
提示:
- 1 <= arr.length <= 10000
- 0 <= arr[i] <= 9
链接:https://leetcode-cn.com/contest/weekly-contest-141/problems/duplicate-zeros/
分析:
要求有不要在超过数组长度的位置写入元素,可以遍历一遍,遇到零就将最后一个抹除,然后在当前位置插入一个0。
AC Code:
 class Solution {
 public:
     void duplicateZeros(vector<int>& arr) {
         int length = arr.size();
         for (int i = ; i < length; i++)
         {
             if (arr[i] == )
             {
                 arr.erase(arr.end()-);
                 arr.insert(arr.begin()+i, );
                 i++;
             }
         }
     }
 };
其他:
1.第一code
     class Solution {
         public void duplicateZeros(int[] arr) {
             int n = arr.length;
             int[] a = Arrays.copyOf(arr, n);
             int p = ;
             for(int i = ;i < n;i++){
                 if(a[i] == ){
                     if(p < n)arr[p++] = ;
                     if(p < n)arr[p++] = ;
                 }else{
                     if(p < n)arr[p++] = a[i];
                 }
             }
         }
     }    
构建输入数据的备份,然后在原来位置上进行修改。
2,vector删除元素erase ,
vector<int> vec;
vec.erase(vec.begin()+index); //删除vec[index]的数据
vec.insert(vec.begin()+index,value); //在index位置插入value。
LeetCode1089复写零的更多相关文章
- LeetCode 1089. 复写零(Duplicate Zeros) 72
		1089. 复写零 1089. Duplicate Zeros 题目描述 给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移. 注意:请不要在超过该数组长 ... 
- 复写的Object常用方法
		复写的Object常用方法 在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法.每次写这几个方法都要做很多重复性的 ... 
- 「零秒思考」是个神话,不过这款笔记术你值得拥有zz
		今天读完了赤羽雄二的<零秒思考>,作者是一位在麦肯锡公司工作了 14 年的资深顾问.依照作者的说法,「零秒思考」指的是: 瞬间便能认清现状, 瞬间便能整理问题, 瞬间便能考虑出解决办法, ... 
- 教你如何使用零代码开发的Foreach循环功能代替for循环
		使用技巧:Foreach循环功能! 项目中为了避免将同样的语句重复写很多次,相信大家在编程过程中肯定用过循环语句.其中For循环作为基础中的基础,大家一定不会陌生.不过今天小V要讲的可不是For循环, ... 
- 零基础入门必备的Linux命令和C语言基础
		文件和目录(底部有视频资料) cd /home 进入 '/ home' 目录' cd - 返回上一级目录 cd -/- 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 c ... 
- 零基础学Java第六节(面向对象二)
		本篇文章是<零基础学Java>专栏的第六篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 继承 创建一个Person类 我们 ... 
- 菜鸟学Struts2——零配置(Convention )
		又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ... 
- 13、零配置Struts2开发
		Convention 插件 从 Struts 2.1 开始, Struts 可以使用 Convention 插件来支持零配置: Convention 插件完全抛弃配置信息, 不仅不需要使用 strut ... 
- 从零自学Hadoop(22):HBase协处理器
		阅读目录 序 介绍 Observer操作 示例下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,Sour ... 
随机推荐
- java.exe is valid, but is for a machine type other than the current machine
			java.exe is valid, but is for a machine type other than the current machine jdk版本不一致问题,在32位机器上使用64位的 ... 
- 引入clipboard.js
			引入clipboard.js var clipboardJS = new ClipboardJS('#accept-data'); // 括号内的是选择器 
- 规则引擎.Net Core
			.Net Core 环境下构建强大且易用的规则引擎 https://www.cnblogs.com/chenug/p/9160397.html 本文源码: https://github.com/jon ... 
- net core分块上传文件
			net core分块上传文件 写完asp.net多文件上传(http://www.cnblogs.com/bestckk/p/5987383.html)后,感觉这种上传还是有很多缺陷,于是...( ... 
- 关系型数据库---MySQL---数据表
			1.在创建一个新的MySQL数据表时,可以为它设置一个类型: 2.MySQL支持多种数据表类型,有各自的特点和属性,最重要的3种类型: 1.1 MyISAM 1.2 InnoDB 1.1 可以把Inn ... 
- SqlDbx连接oracle
			解压SqlDbx.zip,将SqlDbx放到C:盘根目录 1.Path里面增加:C:\SqlDbx Path是为了找tnsnames.ora 2.增加系统变量:ORACLE_HOME,路径:C:\S ... 
- Spark Mllib里的向量标签概念、构成(图文详解)
			不多说,直接上干货! Labeled point: 向量标签 向量标签用于对Spark Mllib中机器学习算法的不同值做标记. 例如分类问题中,可以将不同的数据集分成若干份,以整数0.1.2,... ... 
- SSH 的端口转发
			第一部分 概述 当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我 ... 
- 【Java】 jar解压与压缩
			jar解压与压缩 命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名 # 解压,到当前目录 jar -xvf source.jar # 打包,不进行压缩 ja ... 
- android pm命令
			把网络apk下载到盒子或者其他安卓设备上 1.adb push windows的原路径 android设备的路径 2.pm install android设备的路径 注意:这里pm命令是安卓设备才有的 ... 
