LeetCode080_80. 删除有序数组中的重复项 II

news/2024/12/5 13:30:25/

LeetCode080_80. 删除有序数组中的重复项 II

一、描述

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {print(nums[i]);
}

示例 1:

输入:nums = [1,1,1,2,2,3]
输出:5, nums = [1,1,2,2,3]
解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。 不需要考虑数组中超出新长度后面的元素。

示例 2:

输入:nums = [0,0,1,1,1,1,2,3,3]
输出:7, nums = [0,0,1,1,2,3,3]
解释:函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3 。 不需要考虑数组中超出新长度后面的元素。

提示:

1 <= nums.length <= 3 * 10的4次方
-(10的4次方) <= nums[i] <= 10的4次方
nums 已按升序排列

二、题解

方法:注意题目不让额外开辟空间,原地删除

    /*执行结果:通过执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户内存消耗:41.3 MB, 在所有 Java 提交中击败了92.83%的用户通过测试用例:164 / 164*/
class Solution {public int removeDuplicates(int[] nums) {if (nums.length <= 2) {return nums.length;}//定义一个变量,用来记录新下标位置int index = 2;for (int i = 2; i < nums.length; i++) {if (nums[index - 2] != nums[i]) {nums[index++] = nums[i];}}return index;}
}

LeetCode 1. 两数之和
LeetCode 2. 两数相加
LeetCode 3. 无重复字符的最长子串
LeetCode 4. 寻找两个正序数组的中位数
LeetCode 5. 最长回文子串
LeetCode 6. Z 字形变换
LeetCode 7. 整数反转
LeetCode 8. 字符串转换整数 (atoi)
LeetCode 9. 回文数
LeetCode 10. 正则表达式匹配
LeetCode 13. 罗马数字转整数
LeetCode 14. 最长公共前缀
LeetCode 20. 有效的括号本
LeetCode 26. 删除有序数组中的重复项
LeetCode 27. 移除元素
LeetCode 28. 找出字符串中第一个匹配项的下标
LeetCode 35. 搜索插入位置
LeetCode 53. 最大子数组和
LeetCode 66. 加一
LeetCode 67. 二进制求和
LeetCode 69. x 的平方根
LeetCode 70. 爬楼梯
LeetCode 80. 删除有序数组中的重复项 II



声明:
        题目版权为原作者所有。文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博: http://weibo.com/luoyepiaoxue2014 点击打开链接


http://www.ppmy.cn/news/12442.html

相关文章

【7】AMBA_SOC项目IC验证自学项目-EDA知识讲解

目录&#xff1a;1、三大EDA工具介绍&#xff1a;2、EDA具体是什么意思&#xff1f;3、大部分公司中用哪个最多&#xff1f;1、三大EDA工具介绍&#xff1a; Synopsys&#xff08;新思科技&#xff09;&#xff0c;美国 vcs Cadence&#xff08;楷登电子&#xff09;&#xf…

命令行批量 PDF 转换器:2PDF 2.0.8x Crack

命令行 PDF 转换器 2PDF 是一个专业的命令行实用程序&#xff0c;用于以批处理模式将办公文档和图像转换为 PDF。2PDF 基于命令行界面和语法&#xff0c;通过简单的标准命令提供对批量转换为 PDF 的完全控制。 从 Windows 命令提示符将文档和图像转换为 PDF 2PDF 可以将 PDF 和…

1.15日报

完成font.css global.css login.vue request.js 今天完成了前端与后端的联通&#xff0c;并成功响应请求。返回登录成功欣喜。 遇到的问题&#xff1a; 我的body设置了&#xff1a; margin:0; padding:0; 但是页面四周还有白色留边。原因&#xff1a;body设置无边框了&a…

YOLO家族系列模型的演变:从v1到v8(上)

YOLO V8已经在本月发布了&#xff0c;我们这篇文章的目的是对整个YOLO家族进行比较分析。了解架构的演变可以更好地知道哪些改进提高了性能&#xff0c;并且明确哪些版本是基于那些版本的改进&#xff0c;因为YOLO的版本和变体的命名是目前来说最乱的&#xff0c;希望看完这篇文…

漏洞挖掘之信息收集

简介 对单一指定目标网站进行黑盒测试&#xff0c;最重要的就是信息收集&#xff0c;因为网站管理员肯定会在用户经常访问的主网站进行经常维护&#xff0c;而那些子域名&#xff0c;没有什么人访问的&#xff0c;可能就会忘记维护&#xff0c;挖洞的突破点大都在于子域名上&am…

SPSS常用的10种统计分析

目录 实验一 地理数据的统计处理 一、实验目的 二、实验内容 三、实验步骤 实验二 双变量相关分析 一、实验目的 二、实验内容 三、实验步骤 实验三 主成分分析 一、实验目的 二、实验内容 三、实验步骤 实验四 因子分析 一、实验目的 二、实验内容 三、实…

mysql索引字段设计

表字段数量与row大小限制可以参考官方文档 https://dev.mysql.com/doc/refman/8.0/en/column-count-limit.html#column-count-limits 复合索引 参考&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html 数量限制 一个复合索引最多可以包含16个列&…

【JavaSE】Java反射机制详解

【JavaSE】Java反射机制详解 文章目录【JavaSE】Java反射机制详解一&#xff1a;反射简介&#xff1f;二&#xff1a;反射的应用场景三&#xff1a;反射实战1&#xff1a;获取 Class 对象2&#xff1a;获取构造方法3&#xff1a;获取字段4&#xff1a;获取方法5&#xff1a; 反…