首页 > 其他分享 >LeetCode.283 移动零

LeetCode.283 移动零

时间:2023-08-27 16:33:36浏览次数:35  
标签:index right nums int LeetCode.283 ++ 移动 left

题目描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 https://leetcode.cn/problems/move-zeroes/description/  
输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

双指针挪动

Python 实现

def moveZeroes(nums: List[int]):
    '''
    移动 0
    :param nums:
    :return:
    '''
    #非0往前移动
    index = 0
    for num in nums:
        if num != 0:
            nums[index] = num
            index += 1
    #末尾补0
    for i in range(index, len(nums)):
        nums[i] = 0
    return nums

Java 实现

    /**
     * LC 283 移动 0--双指针挪动法
     * @param nums
     */
    public static void moveZeroes(int[] nums) {
        int index = 0;
        for (int n : nums) {
            if (n != 0) {
                nums[index++] = n;
            }
        }
        for (int i = index; i < nums.length; i++) {
            nums[i] = 0;
        }
    }

双指针交换法

Python 实现

def moveZeroes1(nums: List[int]):
    left, right = 0, 0
    while right < len(nums):
        if nums[right] != 0:
            nums[right], nums[left] = nums[left], nums[right]
            left += 1
        right += 1
    return nums

Java 实现

    public static void moveZeroes1(int[] nums) {
        int left = 0, right = 0, temp = 0;
        while (right < nums.length) {
            if (nums[right] != 0) {
                temp = nums[right];
                nums[right] = nums[left];
                nums[left] = temp;
                left++;
            }
            right++;
        }
    }

 

标签:index,right,nums,int,LeetCode.283,++,移动,left
From: https://www.cnblogs.com/wdh01/p/17472897.html

相关文章

  • 面试日记 | 移动咪咕
    2023年校招,前沿技术规划笔试移动校招统一笔试一面群面,上午逐个自我介绍提问,逐个回答最讨厌的人比较关注的前言技术抢答近期做过的自豪的事二面单人,下午自我介绍介绍一下隐私计算介绍一下对元宇宙的理解自己的优势和缺点......
  • 在移动硬盘上安装Win11系统(不使用工具)
    一、准备镜像文件1、前往官网下载Win11镜像文件。Win11官网:DownloadWindows11(microsoft.com)2、装载Win11镜像找到Win11镜像。右键点击装载之后再此电脑里面就能看见一个DVD驱动器,记住这个驱动器的盘符,这里为F盘。二、划分分区1、选择磁盘按Windows键+R键打开运行,输......
  • C++11 右值引用&&、移动语义std::move、完美转发std::forward
    参考:https://blog.csdn.net/HR_Reborn/article/details/130363997 #pragmaonceclassArray{public:Array():size_(0),data_(nullptr){}Array(intsize):size_(size){data_=newint[size_];}//复制构造函数(深拷贝构造)A......
  • 一个随鼠标点击移动的小球
    一个随鼠标点击移动的小球<p>随便点击某处来移动球</p><divid="foo"class="ball"></div>constf=document.getElementById("foo");document.addEventListener("click",(ev)=>{f.style.transform=`transl......
  • 工控机赋能移动机器人,实现高效的自动化操作与管理!
    随着制造业数字化转型的加速,工业4.0时代的到来,工业互联网逐步成为中国推进新型工业化进程的核心驱动力量。而工控机作为工业互联网领域的重要组成部分,已经在越来越多行业得到广泛应用。据中商情报网数据显示,2022年我国工业自动化市场规模达2807亿元,预计2023年市场规模将增长至3115......
  • Unity 中移动轴心 Pivot
    前言解决无法直接用鼠标移动UnityImage的轴心(Pivot)问题。如图所示,轴心为灰色:解决方案找到ToggleToolHandlePosition将center改为Pivot搞定......
  • Windows休眠后光标移动卡顿
    问题环境:-OS:Windows11-CPU:AMDRyzen7PRO6850U背景知识:-睡眠:操作系统状态驻留内存,能够快速唤醒-休眠:操作系统状态卸载到磁盘中,唤醒时需要重载状态至内存我的笔记本电脑在连接电源时会出现睡眠睡死的情况,所以长时间不用会主动休眠,避免睡死,但是发现在休眠唤醒后长按......
  • Heikin Ashi最简单的一种烛台移动平均线
    是不是每次进行交易的时候,市场上的各种新闻真真假假,搞的交易者每次都分不清楚,今天FPmarkets澳福给各位投资者推荐一种交易策略——“Heikin  Ashi”“Heikin  Ashi”只通过四个参数构建:开盘价、收盘价、最高价和最低价(最大和最小价格数据值)。换句话说,标准的日本条形图被重新......
  • 移动端多个tab页滑动
    如下图,实现的目的就是如果有多个tab标签,但是布局只能显示三个,其余的往后排列,可以滑动找到。实现代码<!DOCTYPEhtml><html><head><metacharset="UTF-8"><metacontent="width=device-width,initial-scale=1.0,minimum-scale=1.0,maxi-mum-scale=1.0,user-......
  • KVM安装FreeBSD12桌面,鼠标无法移动
    参考:https://forums.freebsd.org/threads/qemu-kvm-freebsd-guest-running-x-and-a-working-mouse.82460/解决办法:1、Addinputdevice"EvTouchUSBGraphicsTablet"invirt-manager.具体配置如下:<inputtype='tablet'bus='usb'><address......