首页 > 其他分享 >Leecode 移动零

Leecode 移动零

时间:2024-03-20 11:26:51浏览次数:17  
标签:p2 p1 nums int Leecode 移动 public 指针

Day 6 刷题

我的解题思路:利用双指针,一个指针不断向前移动,表征是否交换完成,另一个指针负责当次交换的位置。
class Solution {
    public void moveZeroes(int[] nums) {
        
        // 当指针p1指向的元素为0时,将其挪到后面
        OUT:
        for(int p1 = 0; p1<nums.length; p1++){
            int p2 = p1;
            if(nums[p1] == 0){
                // 找到最前面不为0的值
                while(nums[p2]==0){
                    p2++;
                    if(p2 >= nums.length){
                        break OUT;
                    }
                }
                nums[p1] = nums[p2];
                nums[p2] = 0;
                p2--;
            }
        }      

    }
}
王尼玛的巧妙解题思路:

用 0 当做这个中间点,把不等于 0的放到中间点的左边,等于 0 的放到其右边。

class Solution {
	public void moveZeroes(int[] nums) {
		if(nums==null) {
			return;
		}
		//两个指针i和j
		int j = 0;
		for(int i=0;i<nums.length;i++) {
			//当前元素!=0,就把其交换到左边,等于0的交换到右边
			if(nums[i]!=0) {
				int tmp = nums[i];
				nums[i] = nums[j];
				nums[j++] = tmp;
			}
		}
	}
}	

巧妙在利用新索引j来重新更新有元素的值!nums[j++] = tmp;

标签:p2,p1,nums,int,Leecode,移动,public,指针
From: https://www.cnblogs.com/xytang-mini-juan/p/18084824

相关文章

  • 去哪里找解决方案,防止重要信息通过移动设备如U盘、硬盘等泄漏?
    在日常工作中,移动设备如U盘、硬盘等被广泛的利用,他们的便捷性和大容量对于文件的存取和传输提供了极大的方便。然而,这也给信息安全带来了新的威胁。重要信息如果未经适当保护就在单位间通过这些设备流通,很可能会导致数据泄漏。那么,如何有效防止这种情况发生呢?加密是一种常见且有......
  • node实现目标文件移动到自建文件中
    constfs=require('fs');constpath=require('path');constoutputDirectory='result';//替换成你的目标文件夹路径if(!fs.existsSync(outputDirectory)){  fs.mkdirSync(outputDirectory)}//根目录,包含多个文件夹constrootDirectory='测试文......
  • 使用vw进行移动端适配(nuxt项目)
     基于nuxt 2.0.0 安装postcss-px-to-viewportnpm安装npminstallpostcss-px-to-viewport--save-dev或yarn安装yarnadd-Dpostcss-px-to-viewport 在nuxt中配置postcss-px-to-viewport在nuxt.config.js中配置exportdefault{........./*......
  • 插件下载(成为开发者编写自己的动态DLL插件/请下载以下dll插件移动到[xl0shell-aptv2目
    DLL动态库插件下载地址支持平台上传时间功能介绍多IP域名穷举插件.dll点击下载xl0shell-aptv2工具库2024/03/1618:54:22可进行多IP域名直接爆出的插件工具,可进行IP下域名扫描等操作生成TXT文本到桌面webshell批量管理工具插件.dll点击下载xl0shell......
  • 【LeetCode 2684】矩阵中移动的最大次数
    题目描述原题链接:2684矩阵中移动的最大次数解题思路每次只能向右侧的下一列紧挨着的三行严格大的格子移动;能移动到i列代表能移动i次,这取决于i-1列可到达的矩阵位置的状态,即可以整列递推相邻列是否可移动到达;两个方向递推的思路:三个(col+1)位置的状态可以逆推出一个(c......
  • 262:vue+openlayers 移动地图获取中心点经纬度信息
    第262个点击查看专栏目录本示例介绍演示如何在vue+openlayers中移动地图并获取中心点经纬度信息。这里主要用到了是view的getCenter方法,这一功能在实际项目中很有用,能给出一个清晰的定位。直接复制下面的vue+openlayers源代码,操作2分钟即可运行实现效果文......
  • vue3+ts+vant写移动端项目部Android机页面打开空白
    前言部分安卓机因为内置webview较老,所以无法识别最新的es6的语法,页面打开空白。解决方式,vite项目就使用@vitejs/plugin-legacy,其他项目可以选择使用@babel/core@babel/cli@babel/preset-env这里主要提vite项目,因为babel项目的相关博客较多,就不再复述。 vite.config......
  • OPCV 移动物体检测
    1.差值法检测:差值法是一种简单而有效的移动物体检测技术,适用于监控和实时跟踪系统。其核心思想是通过比较连续视频帧之间的差异来识别移动物体。.1>差值法原理差值法的基本原理是比较连续两帧或多帧图像间的像素差异。对于静态背景,相邻帧间的差异较小,而对于移动物体,由于其......
  • 移动基站设备与维护 第二章(天馈系统)
    移动基站设备与维护第二章第二章天馈系统2.1无线电波的基础知识1.无线电波概念:是一种能量的传输的形式电场和磁场在空间中相互交替变换,并且向前行进在传播的过程中,电场和磁场在空间中处于相互垂直的,同时又垂直于传播方向传播的速度:与介质有关系在真空中传播速度等于......
  • Leecode 二叉树的前序遍历
    Day2刷题我的思路:用数组list存储遍历结果,利用ArrayList的方法实现嵌套!importjava.util.*;classSolution{//defininganarraylistpublicList<Integer>preorderTraversal(TreeNoderoot){List<Integer>Traversal=newArrayList<>();......