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

【百日算法计划】:每日一题,见证成长(006)

题目

删除有序数组中的重复项

给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
示例 1:
输入:nums = [1,1,2]
输出:2, nums = [1,2,_]

解题思路

  • 用区间范围表示不重复元素集合,比如[0,k],k表示该范围的右边界
  • 当i在扫描的过程中,遇到和k位置元素不相等的值时,k先右移一位,然后再把i的值放进该区间k的位置
  • 最后返回k+1长度
 public static int removeDuplicates(int[] nums) {if (nums.length == 0) return 0;int k = 0; //[0,k]表示不重复元素的区间范围,k表示该范围的右边界for (int i = 1; i < nums.length; i++) {if (nums[i] != nums[k]){k++; //边界先右移一位nums[k] = nums[i]; //把不重复的元素加进区间中}}return k + 1;}

http://www.mrgr.cn/news/16659.html

相关文章:

  • 客流预测 | 基于Transformer下车站点客流推断研究(Matlab)
  • RK3568笔记五十八:基于SIP的视频通话测试
  • Multi-UAV|多无人机、多场景路径规划MATLAB
  • nuxt3模拟手机验证码
  • 大模型好书案例——《BERT基础教程:Transformer大模型实战》(附PDF)
  • HarmonyOS应用开发者基础认证 | <HarmonyOS第一课>习题-ArkTS语法
  • LTspice 的简单使用【软件使用学习】
  • 如何在JPG文件中隐写数据
  • Day52 | dijkstra(堆优化版)Bellman_ford 算法
  • 【STM32H743】将全局变量定义到指定内存MDK
  • PE文件结构详解(非常详细)
  • 【QT线程学习】
  • 【时间盒子】-【1.序言】高效人士都在用的时间管理方法。我是如何通过鸿蒙元服务APP实现?
  • 火爆全网的扩散模型(Diffusion Model)到底是什么?只看这篇就够了!绝对通俗易懂!草履虫看完都要点头!| 附完整代码 + 详细注释
  • 2024年软考科目大调整:考试安排、频次变动全解析
  • YOLOv8改进 | 主干篇 | YOLOv8引入EfficientViT替换Backbone
  • 极限.....
  • AI编码新时代:免费人工智能助手Blackbox AI
  • 在内核态使用 intel avx2 加速内存操作
  • ChatGPT的全面写作革命:我们迎来效率飞跃还是创造力危机?