当前位置:网站首页>Mobile Zero of Likou Brush Questions
Mobile Zero of Likou Brush Questions
2022-08-01 19:06:00 【Lanzhou Qianfan】
The mobile zero of the force button brush question
This is the number one in the quiz283题.
题目
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序.
请注意 ,必须在不复制数组的情况下原地对数组进行操作.

The question asks to move the zeros in the array to the back of the array.And can only operate on the original array,不可以复制,You cannot shuffle the order of the original array elements.
So for the movement of the elements,If the brain rotation is not very smart,It is recommended to draw a picture yourself to try it out,See how to move.
You see how these scrambled zeros move to the back

Move zero to the back,Then you need to move the non-zero elements to the front.
一种想法,我们可以用两个指针,Then start to initialize the head of the array pointing to the same time.
And how to move it?The yellow pointer starts to move,移动到3,它不是零,We replace it with the white one0的值.
继续,到这里的时候,Our yellow pointer points to zero,We certainly don't move forward zero.
There is no movement here,Do not move the white pointer,The yellow ones continue to move.
移动到4的时候,Then the number at the yellow point replaces the value at the white execution.
然后两个指针继续移动,The value at the yellow pointer now replaces the value at the white pointer again,The yellow pointer reaches the end
Then we continue to move the white pointer to the end point,and assigns the value at the following index0.
This moves it.
We write code according to this logic
class Solution {
public void moveZeroes(int[] nums) {
int pre01 =0;
for (int pre02 = 0; pre02 < nums.length; pre02++) {
if (nums[pre02]!=0)
{
nums[pre01++]=nums[pre02];
}
}
for (int i = pre01; i < nums.length; i++) {
nums[i]=0;
}
}
}

还有一种方法,There is a difference in thinking.This time we initialize two pointers.
Only this time around,我们是这样做的.

We exchange directly when comparing.
然后移动,Both are zeros here,不交换.yellow move,White unchanged
Swap next
继续
Compare carefully,There is a difference between the two methods.Our exchange patterns are different,The position to which the pointer moves is different.
来看代码实现.
int pre01 =0;
for (int pre02 = 0; pre02 < nums.length; pre02++) {
if(nums[pre01]==0&&nums[pre02]!=0)
{
int n= nums[pre02];
nums[pre02]=nums[pre01];
nums[pre01++] =n;
}
else if (nums[pre01]!=0)
{
pre01++;
}
}
This execution efficiency is not as high as our above method,But the last one seems to be more like a loophole.
边栏推荐
- vtk体绘制代码报错的解决办法(代码在vtk7,8,9中都能运行),以及VTK数据集网站
- Source code analysis of GZIPOutputStream class
- 用VS2013编译带boost库程序时提示 fatal error C1001: 编译器中发生内部错误
- 暑假第二周总结博客
- 请你说说多线程
- #yyds dry goods inventory# Interview must brush TOP101: the last k nodes in the linked list
- 30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?
- Go GORM transaction instance analysis
- Choosing the right DevOps tool starts with understanding DevOps
- Map by value
猜你喜欢

Win11如何删除升级包?Win11删除升级包的方法
如何看待腾讯云数据库负责人林晓斌借了一个亿炒股?

【蓝桥杯选拔赛真题47】Scratch潜艇游戏 少儿编程scratch蓝桥杯选拔赛真题讲解

MySQL中超键、主键及候选键的区别是什么

明日盛会|ApacheCon Asia 2022 Pulsar 技术议题一览

MLX90640 Infrared Thermal Imager Temperature Measurement Module Development Notes (Complete)

Prometheus的Recording rules实践

哈哈!一个 print 函数,还挺会玩啊!

SENSORO成长伙伴计划 x 怀柔黑马科技加速实验室丨以品牌力打造To B企业影响力

shell脚本专题(07):文件由cfs到bos
随机推荐
PanGu-Coder:函数级的代码生成模型
483-82 (23, 239, 450, 113)
Choosing the right DevOps tool starts with understanding DevOps
用VS2013编译带boost库程序时提示 fatal error C1001: 编译器中发生内部错误
TestNG multiple xml for automated testing
LeetCode 1374. Generate an odd number of each character string
XML配置
explain each field introduction
英国伦敦大学|眼科强化学习:潜在应用和实施挑战
cf:D. Magical Array【数学直觉 + 前缀和的和】
Goldfish Brother RHCA Memoirs: CL210 manages OPENSTACK network -- network configuration options
LeetCode 0152. Product Maximum Subarray: dp + Roll in Place
首篇 NLP 领域图神经网络综述:127 页,从图构建到实际应用面面观
力扣刷题之求两数之和
No need to crack, install Visual Studio 2013 Community Edition on the official website
有点奇怪!访问目的网址,主机能容器却不行
想随时、随地、随心使用数据库的朋友们,全体注意!
When compiling a program with boost library with VS2013, it prompts fatal error C1001: An internal error occurred in the compiler
Become a Contributor in 30 minutes | How to participate in OpenHarmony's open source contributions in multiple ways?
重保特辑|筑牢第一道防线,云防火墙攻防演练最佳实践