leetcode26.删除有序数组中的重复项
2021/5/2 10:28:39
本文主要是介绍leetcode26.删除有序数组中的重复项,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
leetcode26.删除有序数组中的重复项
- 题目描述
/** * 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 , * 返回删除后数组的新长度。 * <p> * 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 */
- 思路及分析
- 题目要求原地删除重复的元素,使每个元素只出现一次,因此不能创建新数组,可以考虑将不重复的元素继续存储到这个数组中
- 因为数组在底层是连续存储的,及地址是连续的,这样的结构使得在原数组中存储新数据成为可能
- 只是在存储新数据后原数组的元素发生改变,
- 要保证新数组元素的唯一,立刻想到的就是Hash结构,能够保证元素的不可重复性
- 源码及分析
public int removeDuplicates(int[] nums) { //创建HashSet集合,由于Hash的元素不重复性,可以保证拿到的元素唯一 HashSet<Integer> set = new HashSet<>(); //记录不重复的元素数目 int count = 0; for (int i = 0; i < nums.length; i++) { //遍历数组,将不重复的元素继续存储到这个数组中, int num = nums[i]; //如果添加成功则返回true if (set.add(num)) { nums[count] = num; count++; } } return count; }
这篇关于leetcode26.删除有序数组中的重复项的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享
- 2024-07-03微信支付提示订单号重复-icode9专业技术文章分享
- 2024-07-02微服务启动nacos注册上去了,但是一直没有收到请求-icode9专业技术文章分享
- 2024-07-02如何检查文件的编码格式-icode9专业技术文章分享
- 2024-07-02sublime 更改编码格式-icode9专业技术文章分享
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享