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;
    }    
}

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

相关文章
|
7月前
|
JavaScript 索引
利用身份证验证性别和获取生日
利用身份证验证性别和获取生日
|
人工智能
AI背景颜色变成白色了怎么恢复灰色?
一些刚开始使用AI来做平面设计的朋友,有时候会突然工作界面变成白色,而设置里看了是灰色,然后怎样都调不回来了。贴吧里一篇文章介绍用CTRL+SHIFT+H,实际上这是隐藏画板的快捷键并没有解决问题。
AI背景颜色变成白色了怎么恢复灰色?
|
存储 JSON 数据格式
DataFrame必会基础操作
DataFrame必会基础操作
DataFrame必会基础操作
|
3月前
|
Java
01_斐波那契数列
01_斐波那契数列
09_分割等和子集
09_分割等和子集
|
7月前
|
SQL HIVE UED
【Hive SQL 每日一题】分析电商平台的用户行为和订单数据
作为一名数据分析师,你需要分析电商平台的用户行为和订单数据。你有三张表:`users`(用户信息),`orders`(订单信息)和`order_items`(订单商品信息)。任务包括计算用户总订单金额和数量,按月统计订单,找出最常购买的商品,找到平均每月最高订单金额和数量的用户,以及分析高消费用户群体的年龄和性别分布。通过SQL查询,你可以实现这些分析,例如使用`GROUP BY`、`JOIN`和窗口函数来排序和排名。
387 2
|
7月前
|
存储 关系型数据库 MySQL
【MySQL系列笔记】分库分表
分库分表是一种数据库架构设计的方法,用于解决大规模数据存储和处理的问题。 分库分表可以简单理解为原来一个表存储数据现在改为通过多个数据库及多个表去存储,这就相当于原来一台服务器提供服务现在改成多台服务器组成集群共同提供服务。
211 8
|
6月前
|
API 开发工具
企业微信api接口调用-触发推送企业微信微信好友
企业微信api接口调用-触发推送企业微信微信好友
|
7月前
|
存储 人工智能 搜索推荐
阿里云佘俊泉:边缘云场景的探索与机遇
2024全球分布式云大会·北京站,阿里云演讲《创新涌现,边缘云场景的探索与机遇》
156 8
阿里云佘俊泉:边缘云场景的探索与机遇
|
7月前
|
算法 Java 流计算
Java【算法分享 02】道格拉斯-普克 Douglas-Peucker 抽稀算法分析及15w个坐标点抽稀到3.7w耗时从360s+优化到365ms接近1000倍的速度提升(并行流+多线程+泛型)
Java【算法分享 02】道格拉斯-普克 Douglas-Peucker 抽稀算法分析及15w个坐标点抽稀到3.7w耗时从360s+优化到365ms接近1000倍的速度提升(并行流+多线程+泛型)
245 0