当前位置: 首页 > news >正文

Leetcode Hot 100刷题记录 -Day3(双指针)

移动零

问题描述:

        给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:

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

示例 2:

输入: nums = [0]
输出: [0]
//解法一:
class Solution {public int[] moveZeroes(int[] nums){int n = nums.length;int j =0; //指针j为指向已经处理好的序列尾部//指针i指向未处理好的序列头部for (int i = 0;i < n; i++){if(nums[i] != 0){int temp = nums[i];nums[i] = nums[j];nums[j] = temp;j++;}}return nums;}
}//解法二:
class Solution {public int[] moveZeroes(int[] nums){int n = nums.length;int j =0;for (int i = 0;i < n; i++){if(nums[i] != 0){nums[j] = nums[i];//指针j指向为0的数,直接将其变为非0的数j++;}}//第一次循环将前面所有不为0的数全部移动到前面,且指针j最后指向的是已经处理好的序列尾部//所以指针i和指针j之间的数为0的个数for (int i = j; i<n; i++){nums[i] = 0;}return nums;}
}
//带有输入输出:
//解法一:
public class hot4_moveZeroes {public int[] moveZeroes(int[] nums){int n = nums.length;int j =0;for (int i = 0;i < n; i++){if(nums[i] != 0){int temp = nums[i];nums[i] = nums[j];nums[j] = temp;j++;}}return nums;}public static  void main(String[] args) {hot4_moveZeroes hot4MoveZeroes = new hot4_moveZeroes();int[] nums = {0,1,0,3,12};System.out.println("输入: = " + Arrays.toString(nums));int[] result = hot4MoveZeroes.moveZeroes(nums);System.out.println("输出:" + Arrays.toString(result));}
}//解法二:
public class hot4_moveZeroes {public int[] moveZeroes(int[] nums){int n = nums.length;int j =0;for (int i = 0;i < n; i++){if(nums[i] != 0){nums[j] = nums[i];j++;}}for (int i = j; i<n; i++){nums[i] = 0;}return nums;}public static  void main(String[] args) {hot4_moveZeroes hot4MoveZeroes = new hot4_moveZeroes();int[] nums = {0,1,0,3,12};System.out.println("输入: = " + Arrays.toString(nums));int[] result = hot4MoveZeroes.moveZeroes(nums);System.out.println("输出:" + Arrays.toString(result));}
}

知识点总结:

  • 方法二的思想

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • hive中datediff函数介绍
  • Golang | Leetcode Golang题解之第372题超级次方
  • Git之1.0版本重要特性及用法实例(五十二)
  • 嵌入式开发高频面试题——第二章 C/C++高频面试题(下)
  • 指针进阶(多级指针)
  • 给自己复盘的随想录笔记-哈希表
  • Echarts关系图特效实现
  • leetcode刷题-二叉树08
  • JavaScript常见知识点总结
  • 调用ragflow api实现俩个模型根据知识库的内容来进行对话 简易版
  • 算法的学习笔记—数字序列中的某一位数字(牛客JZ44)
  • 从零开始:全面掌握C++ Qt开发框架基础
  • k8s POD控制器
  • 【DSP+FPGA】基于Virtex-7 FPGA + C6678 DSP的高性能实时信号处理平台
  • Golang学习总结
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 30秒的PHP代码片段(1)数组 - Array
  • ES6之路之模块详解
  • extjs4学习之配置
  • JavaScript创建对象的四种方式
  • js递归,无限分级树形折叠菜单
  • Linux各目录及每个目录的详细介绍
  • Redis在Web项目中的应用与实践
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • vue.js框架原理浅析
  • 程序员该如何有效的找工作?
  • 关于 Cirru Editor 存储格式
  • 回顾2016
  • 悄悄地说一个bug
  • 小程序开发中的那些坑
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 译有关态射的一切
  • 《天龙八部3D》Unity技术方案揭秘
  • ​io --- 处理流的核心工具​
  • ​虚拟化系列介绍(十)
  • (0)Nginx 功能特性
  • (26)4.7 字符函数和字符串函数
  • (33)STM32——485实验笔记
  • (小白学Java)Java简介和基本配置
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)ABI是什么
  • (转)LINQ之路
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .a文件和.so文件
  • .NET Framework .NET Core与 .NET 的区别
  • .Net 执行Linux下多行shell命令方法
  • .net6 webapi log4net完整配置使用流程
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • /*在DataTable中更新、删除数据*/
  • /bin、/sbin、/usr/bin、/usr/sbin
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • :如何用SQL脚本保存存储过程返回的结果集
  • @media screen 针对不同移动设备
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042