当前位置:网站首页>LeetCode每日两题01:移动零 (均1200道)方法:双指针
LeetCode每日两题01:移动零 (均1200道)方法:双指针
2022-08-10 01:54:00 【那人独钓寒江雪.】
题目如下:
解题思路:使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。
class Solution {
public int moveZeroes(int[] nums) {
//左指针左边均为非零数 右指针左边直到左指针处均为零
int n=nums.length, left=0,right=0;
while (right<n){
//0<7
if (nums[right]!=0){
swap(nums,left,right);
left++;
}
right++;
}
}
public void swap(int[] nums,int left,int right){
int temp=nums[left];
nums[right]=nums[left];
nums[left]=temp;
}
}

优化方法:
解题思路:我们创建两个指针i和j,第一次遍历的时候指针j用来记录当前有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍历完后,j指针的下标就指向了最后一个非0元素下标。第二次遍历的时候,起始位置就从j开始到结束,将剩下的这段区域内的元素全部置为0。
class Solution {
public void moveZeroes(int[] nums) {
if(nums==null) {
return;
}
//第一次遍历的时候,j指针记录非0的个数,只要是非0的统统都赋给nums[j]
int j = 0;
for(int i=0;i<nums.length;++i) {
if(nums[i]!=0) {
nums[j++] = nums[i];
}
}
//非0元素统计完了,剩下的都是0了
//所以第二次遍历把末尾的元素都赋为0即可
for(int i=j;i<nums.length;++i) {
nums[i] = 0;
}
}
}

边栏推荐
- OptiFDTD应用:纳米盘型谐振腔等离子体波导滤波器
- 2022杭电多校联赛第七场 题解
- FusionCompute产品介绍
- In the 2022 gold, nine, silver and ten work tide, how can I successfully change jobs and get a high salary?
- Open3D 中点细分(网格细分)
- 首次在我们的centos上安装MySQL
- 多线程之自定义线程池
- 阿里云OSS文件上传
- OpenSSF的开源软件风险评估工具:Scorecards
- [Turn] Typora_Markdown_ picture title (caption)
猜你喜欢

Initial attempt at UI traversal

2022强网杯 Quals Reverse 部分writeup

Process management and task management

FILE结构体在stdio.h头文件源码里的详细代码

小程序开发的报价为什么有差别?需要多少钱?

深度学习(五) CNN卷积神经网络

别再用 offset 和 limit 分页了,性能太差!

Chip Information|Semiconductor revenue growth expected to slow to 7%, Bluetooth chip demand still growing steadily

Unity vertex animation

数据库治理利器:动态读写分离
随机推荐
Golang nil的妙用
控制台中查看莫格命令的详细信息
[QNX Hypervisor 2.2用户手册]10.14 smmu
OptiFDTD应用:纳米盘型谐振腔等离子体波导滤波器
【UNR #6 C】稳健型选手(分治)(主席树)(二分)
通关剑指 Offer——剑指 Offer II 012. 左右两边子数组的和相等
【内存管理概述 Objective-C语言】
免费文档翻译软件电脑版软件
SQLserver加个判断
Open3D 泊松盘网格采样
华为HCIE云计算之FC添加ipsan数据存储
Premint工具,作为普通人我们需要了解哪些内容?
Algorithm and voice dialogue direction interview question bank
基于FTP协议实现文件上传与下载
Maya制作赛博朋克机器人模型
夏克-哈特曼波前传感器
C# 正则表达式分组查询
用于X射线光学器件的哈特曼波前传感器
Unity editor extension interface uses List
《GB39732-2020》PDF下载