【每日一算法】删除排序数组中的重复项
微信改版,加星标不迷路!
每日一算法-删除排序数组中的重复项
作者:阿广
阅读目录
? 题目
? 解析
? 完整代码
1 题目
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
示例 1:
1
2
示例 2:
说明:
为什么返回数值是整数,但输出的答案是数组呢?
请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
你可以想象内部操作如下:
2 解析
(1)重点是排序数组,如果这道题没有排序的话,时间复杂度就应该是O(nlogn)级别的,由于排序了,就可以做到O(n)级别;
(2)另外由于要求在在使用 O(1) 额外空间的条件下完成,所以就不用考虑用字典来记录哪些元素出现了重复;由于是排序数组,所以如果出现重复,应该也是前后位置重复;为了节约时间,不要用删除列表元素的方式来清除重复元素,而是采用覆盖元素的方法确保前n位没有重复即可,所以可以采用如下代码完成。
此题运用的双指针办法,数组完成排序后,使用两个指针 i 和 j,其中 i 是慢指针,而 j 是快指针。只要 nums[i] = nums[j],我们就执行j++,以此来跳过重复项。
当 nums[j] != nums[i] 时,说过重复的值已经结束,因此我们必须把它nums[j]的值复制到 nums[i + 1]。我们重复上面的过程,直到 j 到达数组的末尾为止。
3 完整代码
4 结果
推荐阅读
今日问题
女生遇到心动男生,是追?还是不追?
打卡格式:打卡第n天,答:...
为什么打卡?戳下面你就知道了!
猛
戳
这
儿
21/天/养/一/个/好/习/惯
【每日一算法】删除排序数组中的重复项相关推荐
- 初级算法——删除排序数组中的重复项
题目来源 题目描述: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 ...
- c++两个数组对比去掉重复的元素_每日一道 LeetCode (8):删除排序数组中的重复项和移除元素...
❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...
- leetcode初级算法1.删除排序数组中的重复项
leecode初级算法1.删除排序数组中的重复项 仅为个人刷题记录,不提供解题思路 题解与收获 class Solution {public int removeDuplicates(int[] nu ...
- LeetCode 25K 个一组翻转链表26删除排序数组中的重复项
如果问题或者其他方法还请分享,如加入打卡微信搜索bigsai回复进群一起打卡. K个一组翻转链表 题目要求 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小 ...
- LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...
- day04_ 最长回文子串 / 删除排序数组中的重复项
day04 5. 最长回文子串 26. 删除排序数组中的重复项 ❗另:java中length,length(),size()区别 5. 最长回文子串 LeetCode链接 给定一个字符串 s,找到 s ...
- LeetCode题组:第26题-删除排序数组中的重复项
1.题目:删除排序数组中的重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.(注意这里提到了排序数组,也就是说数组是有序的.如果无序,我们又 ...
- vue删除数组中的一条数据_删除排序数组中的重复项 II
删除排序数组中的重复项 II题目 给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改 ...
- 80. 删除排序数组中的重复项 II golang
80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...
最新文章
- python基础学习笔记(六)
- 2019寒假作业二:PTA7-1币值转换
- Consul入门03 - 注册服务
- 计算机类公务员如何提升自己,大学毕业才发现:所学专业对考公务员如此重要,4类专业上岸率高...
- oracle 闪查询,Oracle的回闪查询
- 【中文信息处理】实验一_语料库统计_基于词表的分词
- 无线网络安全技术基础
- Python3 | UserWarning: findfont: Font family [‘SimHei‘] not found. Falling back to DejaVu Sans.
- python 获取foobar2000官网全部插件
- MIPI CSI转TTL/LVDS/BT656/BT601/BT1120
- DEBUG:谷歌学术无法创建账号
- IPS和IDS的区别
- 全球海底光缆及我国海底光缆分布
- 机器学习实战(Machine Learning in Action)学习笔记————10.奇异值分解(SVD)原理、基于协同过滤的推荐引擎、数据降维...
- ​NeurIPS 2022 | IPMT:用于小样本语义分割的中间原型挖掘Transformer
- C语言实现飞机售票系统
- 百度网盘电脑端看视频声音巨小的解决办法(windows10)
- nginx 配置之 proxy_pass参数详解
- Box2d VS Nape 学习笔记
- 能“读懂”古文还可反诈骗, 合合信息智能文字识别“黑科技”亮相2022WAIC
热门文章
- 神经网络学习到的是什么?(Python)
- 参与开源项目,结识技术大牛!CSDN“开源加速器计划”招募志愿者啦!
- 应届生失业率或继续上升?别怕,这份秋招指南请收好!
- 最近很火的最新一代国际视频标准 VVC 到底是什么?阿里专家为你揭秘
- 5G:新基建的压舱石,如何为新基建按下“加速键”?
- 清华大学提出APDrawingGAN,人脸照片秒变艺术肖像画
- 00后的AI开发者进阶之道:从入门到鏖战MIT编程大赛 | 人物志
- 7行Python代码,搭建可以识花的机器学习App|视频教程
- 每一个开发人员都应该懂的 UML 规范
- 堪称神级的 Java 技术栈手册火了!