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

[Java][Leetcode middle] 80. 删除有序数组中的重复项 II

删除重复元素,最多只保留两个

1. 计数法

  • 第一个元素直接加入
  • 当与前一个元素相同时,计数器+1,不同时计数器恢复1;
    只有计数器小于2时,记录元素;
public int removeDuplicates2(int[] nums) {int cnt = 1;int dup = 1;for(int i = 1; i < nums.length; i++) {if(nums[i] == nums[i-1]) {dup++;}else{dup = 1;}if(dup <=2){nums[cnt++] = nums[i];}}return cnt;}

2. 快慢指针法

/*** 双指针法*/
public int removeDuplicates3(int[] nums) {int cnt = 2;  // first two ele must in the arrayfor(int i = 2; i < nums.length; i++) {if(nums[i] != nums[cnt-2]) {nums[cnt++] = nums[i];}}return cnt;
}

相关文章:

  • 【Linux网络】HTTP
  • 嵌入式硬件篇---无线通信模块
  • 游戏引擎学习第272天:显式移动转换
  • 【软件工程】基于机器学习的多缺陷定位
  • 【Linux系列】bash_profile 与 zshrc 的编辑与加载
  • 一周内学完计算机网络课程之二:计算机网络物理层的理解
  • Linux电源管理(9)_wakelocks
  • 【计算机视觉】OpenCV实战项目 :Image_Cartooning_Web_App:基于深度学习的图像卡通化
  • 【Linux 系统调试】系统级追踪与性能分析利器----LTTng
  • Java反序列化漏洞
  • python:trimesh 用于 STL 文件解析和 3D 操作
  • 《用MATLAB玩转游戏开发》Flappy Bird:小鸟飞行大战MATLAB趣味实现
  • 【Leetcode 每日一题】1550. 存在连续三个奇数的数组
  • android-ndk开发(12): 获取ndk内置clang的版本详情
  • spark-Schema 定义字段强类型和弱类型
  • TCP/IP 模型每层的封装格式
  • leetcode 15. 三数之和
  • 【25软考网工】第六章(3)数字签名和数字证书
  • 在C++中,符号位是否参与位运算
  • 使用vue3-seamless-scroll实现列表自动滚动播放
  • 在笔墨金石间,看胡问遂与梅舒适的艺术对话
  • 多地警务新媒体整合:关停交警等系统账号,统一信息发布渠道
  • 特朗普访中东绕行以色列,专家:凸显美以利益分歧扩大
  • 世界期待中美对话合作带来更多确定性和稳定性
  • 乌外长:乌方准备无条件停火至少30天
  • 习近平圆满结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典