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

Leetcode JAVA刷刷站(27)移除元素

一、题目概述

二、思路方向

       为了解决这个问题,你可以使用双指针的方法来原地移除所有等于 val 的元素,并返回不等于 val 的元素数量。

三、代码实现 

public class Solution {  public int removeElement(int[] nums, int val) {  int left = 0; // 左指针,指向不等于val的元素应该存放的位置  for (int right = 0; right < nums.length; right++) { // 右指针,遍历数组  if (nums[right] != val) { // 如果当前元素不等于val  nums[left] = nums[right]; // 将当前元素放到左指针的位置  left++; // 左指针向右移动一位  }  }  return left; // 左指针的位置就是不等于val的元素数量  }  public static void main(String[] args) {  Solution solution = new Solution();  int[] nums = {3, 2, 2, 3};  int val = 3;  int k = solution.removeElement(nums, val);  System.out.println("不等于val的元素数量:" + k);  System.out.println("修改后的数组(前k个元素):");  for (int i = 0; i < k; i++) {  System.out.print(nums[i] + " ");  }  }  
}

执行结果:

四、小结

       在这个实现中,我们使用两个指针,left 和 rightleft 指针始终指向下一个不等于 val 的元素应该存放的位置,而 right 指针用于遍历整个数组。当遍历到不等于 val 的元素时,我们将其复制到 left 指针指向的位置,并将 left 指针向右移动一位。这样,遍历结束后,数组的前 left 个位置就是所有不等于 val 的元素,而 left 的值就是这些元素的总数。

       这种方法的时间复杂度是 O(n),其中 n 是数组 nums 的长度,因为我们只需要遍历数组一次。空间复杂度是 O(1),因为我们直接在原数组上进行修改,没有使用额外的空间(除了几个用于迭代的变量)。

 结语 

我们永远无法估摸某一刻的价值

直到其成为回忆

!!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C++】函数的声明
  • 计算机毕业设计 助农产品采购平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • 模型部署 - docker
  • 动态规划问题
  • 当前IT行业10大热门细分技术方向,哪一个更适合你?
  • 基于llama.cpp实现Llama3模型的guff格式转换、4bit量化以及GPU推理加速(海光DCU)
  • Nginx 配置文件中 location、proxy_pass最后的斜杠/作用
  • 仿RabbitMQ实现消息队列
  • 按图搜索的精准营销:基于拍立淘API返回值的用户画像
  • MySQL的基本语法记录
  • P1919 【模板】高精度乘法 | A*B Problem 升级版、P3803 【模板】多项式乘法(FFT)、P1595 信封问题(圆排列、错位排列)
  • 转行大模型成功进字节了!48k*15薪!
  • knowLedge-VueCLI项目中环境变量的定义与使用
  • 用C#实现连续打印pdf文件
  • 一起学习LeetCode热题100道(40/100)
  • 2017年终总结、随想
  • CSS 提示工具(Tooltip)
  • Flex布局到底解决了什么问题
  • HTTP 简介
  • iOS编译提示和导航提示
  • java8-模拟hadoop
  • js写一个简单的选项卡
  • mysql中InnoDB引擎中页的概念
  • spring学习第二天
  • Vue UI框架库开发介绍
  • 阿里云应用高可用服务公测发布
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 一个完整Java Web项目背后的密码
  • 数据可视化之下发图实践
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • # Kafka_深入探秘者(2):kafka 生产者
  • # Redis 入门到精通(一)数据类型(4)
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #Linux(Source Insight安装及工程建立)
  • #mysql 8.0 踩坑日记
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (二)JAVA使用POI操作excel
  • (二十四)Flask之flask-session组件
  • (回溯) LeetCode 131. 分割回文串
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一) springboot详细介绍
  • (转)shell中括号的特殊用法 linux if多条件判断
  • *Django中的Ajax 纯js的书写样式1
  • . Flume面试题
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net Signalr 使用笔记
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .netcore如何运行环境安装到Linux服务器
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)