238_移动零

简介: 238_移动零

移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:

输入: nums = [0]
输出: [0]

提示:

  • 1 <= nums.length <= 104
  • -231 <= nums[i] <= 231 - 1

【思路】

使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。

右指针不断向后移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。

注意到一下性质:

1、左指针左边均为非零数;

2、右指针左边直到左指针处均为零。

因此每次交换,都是将左指针的零与右指针的非零数交换,且非零数的相对顺序并未改变。

class Solution {
    public void moveZeroes(int[] nums) {
        int n = nums.length, left = 0, right = 0;
        while (right < n) {
            if (nums[right] != 0) {
                swap(nums, left, right);
                left++;
            }
            right++;
        }
    }
    public void swap(int[] nums, int left, int right) {
        int temp = nums[left];
        nums[left] = nums[right];
        nums[right] = temp;
    }    
}

我的想法是直接用暴力解法计算的,虽然可以算但是这样会超时!

相关文章
|
JavaScript 索引
利用身份证验证性别和获取生日
利用身份证验证性别和获取生日
|
人工智能
AI背景颜色变成白色了怎么恢复灰色?
一些刚开始使用AI来做平面设计的朋友,有时候会突然工作界面变成白色,而设置里看了是灰色,然后怎样都调不回来了。贴吧里一篇文章介绍用CTRL+SHIFT+H,实际上这是隐藏画板的快捷键并没有解决问题。
AI背景颜色变成白色了怎么恢复灰色?
|
存储 人工智能 搜索推荐
阿里云佘俊泉:边缘云场景的探索与机遇
2024全球分布式云大会·北京站,阿里云演讲《创新涌现,边缘云场景的探索与机遇》
264 8
阿里云佘俊泉:边缘云场景的探索与机遇
|
存储 关系型数据库 MySQL
【MySQL系列笔记】分库分表
分库分表是一种数据库架构设计的方法,用于解决大规模数据存储和处理的问题。 分库分表可以简单理解为原来一个表存储数据现在改为通过多个数据库及多个表去存储,这就相当于原来一台服务器提供服务现在改成多台服务器组成集群共同提供服务。
484 8
|
自然语言处理 安全 搜索推荐
外贸企业邮箱精选:国内三大优质邮件服务推荐
该内容介绍了国内三大外贸企业邮箱:Zoho Mail、腾讯企业邮箱和阿里企业邮箱。Zoho Mail以其简洁界面、自定义域名、深度集成办公套件和高效邮件管理脱颖而出,同时具备高级安全特性。腾讯企业邮箱强调个性化定制和多平台同步,而阿里企业邮箱则结合阿里云生态提供智能协同办公和高可用性服务。这三款邮箱均针对企业需求提供了不同的优势和功能。
424 0
|
算法 Java 流计算
Java【算法分享 02】道格拉斯-普克 Douglas-Peucker 抽稀算法分析及15w个坐标点抽稀到3.7w耗时从360s+优化到365ms接近1000倍的速度提升(并行流+多线程+泛型)
Java【算法分享 02】道格拉斯-普克 Douglas-Peucker 抽稀算法分析及15w个坐标点抽稀到3.7w耗时从360s+优化到365ms接近1000倍的速度提升(并行流+多线程+泛型)
426 0
|
弹性计算 Cloud Native 数据可视化
99元建站+云服务器?我们认真的!
「云·原生建站 」+「云服务器ECS e实例」套餐低至0.2折,仅需99元/首年!复制链接直达购买页:https://market.aliyun.com/xinxuan/pinpai1
1284 0
99元建站+云服务器?我们认真的!
|
人工智能 物联网 Linux
从端到云-全面讲解物联网全栈开发之道
万物互联的时代即将到来,互联网作为当今最为火热的方向之一,无数开发者沉迷其中,那么从事物联网开发需要哪些知识储备呢?在本次分享中,来自创客学院的刘正道老师从物联网就业与岗位分析、物联网与嵌入式、物联网行业解决方案、物联网课程体系四部分全面讲解物联网全栈开发之道,带你走向物联网开发世界。
7172 0
|
安全
视频|年最新免费注册MicroSoft365的方法!保姆级教程!!
我们平常说的版本,如:2013、2016等,是那个年份前后推出的office办公套件,我们购买(激活)后,就只能一直使用那个版本,如果想升级新版本,可能需要重新购买(激活)。
757 0
|
对象存储 CDN
阿里云账号怎么注册?手机号或扫码注册均可
阿里云账户注册支持多种方法,如手机号注册、账号注册、支付宝扫码注册、钉钉扫码注册和阿里云APP注册等,阿里云百科来详细说下阿里云账号注册方法:
886 1
阿里云账号怎么注册?手机号或扫码注册均可