摘要:前言的复写零给你一个长度固定的整数数组,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意请不要在超过该数组长度的位置写入元素。
前言
Weekly Contest 141的 复写零:
</>复制代码
解题思路
本题十分简单,需要注意本题是一个原地算法,所以使用双指针法进行变量交换即可。大致逻辑如下:
遍历数组元素
当前元素为0时,下一个元素赋值为0,并对数组进行左移,下一次遍历当前元素后2位的元素。否则正常遍历数组。
实现代码</>复制代码
/**
* 1089. 复写零
* @param arr
*/
public void duplicateZeros(int[] arr) {
for (int i = 0; i < arr.length - 1;) {
if (arr[i] == 0) {// 当前元素为0
// 记录下一个元素的值
int next = arr[i + 1];
// 将下一个元素设为0
arr[i + 1] = 0;
for (int j = i + 2; j < arr.length; j++) { // 从当前索引后的第二个元素开始交换
int tmp = arr[j]; // 记录当前变量
arr[j] = next; // 将前一个位置的元素值赋给当前元素
next = tmp; // next指针记录当前元素
}
i+=2; // 下一次遍历的是当前元素后2位的元素
}else{
++i; // 正常遍历
}
}
}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/77775.html
前端LeetCode刷题 下面是已刷的题目的目录。GitHub:https://github.com/cunzaizhuy...每日打卡更新中,欢迎关注。 数组类 26 删除排序数组中的重复项 27 移除元素 35 搜索插入位置 66 加1 80 medium 删除排序数组中的重复项2 88 合并两个有序数组 167 两数之和II - 输入有序数组 118 杨辉三角 169 easy 求众数 1...
摘要:译者说于年月日发布,该版本正式支持的关键字,并且用旧版本编译同样可以使用这两个关键字,这无疑是一种进步。其次,这是最后一个支持和的版本了,在后续的版本了会移除对它们的兼容。本节最好直接在或者阅读,以获得更好的阅读体验格式支持。 译者说 Tornado 4.3于2015年11月6日发布,该版本正式支持Python3.5的async/await关键字,并且用旧版本CPython编译Torn...
阅读 2112·2021-11-08 13:14
阅读 3017·2021-10-18 13:34
阅读 2115·2021-09-23 11:21
阅读 3683·2019-08-30 15:54
阅读 1904·2019-08-30 15:54
阅读 3005·2019-08-29 15:33
阅读 2680·2019-08-29 14:01
阅读 2034·2019-08-29 13:52
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要