Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >26.删除有序数组中的重复项

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

作者头像
roydonGuo
发布于 2022-11-02 07:55:56
发布于 2022-11-02 07:55:56
1.9K00
代码可运行
举报
文章被收录于专栏:postsposts
运行总次数:0
代码可运行

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。

由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。

将最终结果插入 nums 的前 k 个位置后返回 k 。

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

示例 1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
输入:nums = [1,1,2]
输出:2, nums = [1,2,_]
解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。

示例 2

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。

双指针算法思路:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • java
  • 思路
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public int removeDuplicates(int[] nums) {
        if (nums == null || nums.length == 0)
            return 0;
        int p = 0, q = 1;
        while (q < nums.length) {
            if (nums[p] != nums[q]) {
                nums[++p] = nums[q];
            }
            q++;
        }
        return p + 1;
    }

使用双指针; q指向前面元素,p指向后面待比较元素。 每一次比较下来q都要自增,当两下标对应的元素不相等时,p会自增,并自增后的下标指向的元素赋值为q下标指向的元素。


LeetCode地址—>26.删除有序数组中的重复项


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
26. 删除有序数组中的重复项
示例 1: 输入:nums = [1,1,2] 输出:2, nums = [1,2] 解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。 示例 2: 输入:nums = [0,0,1,1,1,2,2,3,3,4] 输出:5, nums = [0,1,2,3,4] 解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。
编程张无忌
2021/06/21
3K0
【小Y学算法】⚡️每日LeetCode打卡⚡️——13.删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
呆呆敲代码的小Y
2021/08/19
2550
删除有序数组中的重复项(C++)
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
GeekLiHua
2025/01/21
7480
【每日一题】2.LeetCode——删除有序数组中的重复项
给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
爱敲代码的小杨.
2024/05/07
1410
【每日一题】2.LeetCode——删除有序数组中的重复项
LeetCode-26. 删除有序数组中的重复项(java)
        所以实现方法很简单:直接采用快慢指针进行遍历替换,最后将慢指针low输出即是题案。 具体做法: 定义2 个指针,一个在前记作 low,一个在后记作 fast。
bug菌
2023/05/27
3870
LeetCode-26. 删除有序数组中的重复项(java)
26. 删除有序数组中的重复项
在解决本次题目时,我最初的想法是使用双层for循环,但在具体实现过程中出现无法实现对重复数>=3的元素进行去重,后借鉴他人解题思路,使用一层for循环,并结合continue实现去重。 提交结果如下。
魚迹
2023/05/06
2.8K0
26. 删除有序数组中的重复项
☆打卡算法☆LeetCode 26、删除有序数组中的重复项 算法解析
“将给定的有序数组删除重复出现的元素,使每个元素只出现一次,返回删除后数组的长度。”
恬静的小魔龙
2022/08/07
3650
☆打卡算法☆LeetCode 26、删除有序数组中的重复项  算法解析
(Leetcode 2021 刷题计划) 26. 删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
windism
2021/04/19
4540
LeetCode 26. 删除有序数组中的重复项(新方法)
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
freesan44
2021/10/05
3760
LeetCode 26. 删除有序数组中的重复项(新方法)
日拱算法:删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
掘金安东尼
2022/09/19
2890
算法(1)- 删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
小菠萝测试笔记
2021/04/01
2.1K0
力扣26-删除有序数组中的重复项
原题链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/
WuShF
2023/02/17
3680
力扣26-删除有序数组中的重复项
LeetCode | 删除有序数组中的重复项
题目 删除有序数组中的重复项 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。 将最终结果插入 nums 的前 k 个位置后返回 k 。 不要使用额外的空间,你必须在 原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。 判题标准: 系统会用下面的代码来测试你的题解:
yiyun
2023/03/08
4.9K0
LeetCode | 删除有序数组中的重复项
删除有序数组中的重复项 C++
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
叶茂林
2023/07/30
4860
每日一题 | Python3、Java 实战 LeetCode「26. 删除有序数组中的重复项」& 进阶 II
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
与你一起学算法
2021/04/28
1.3K0
leetcode-26删除有序数组中的重复项(双指针)「建议收藏」
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
全栈程序员站长
2022/09/22
3160
LeetCode算法
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。
roydonGuo
2022/12/05
3490
LeetCode算法
p26删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
东边的大西瓜
2022/05/05
3560
【leetcode系列】26. 删除排序数组中的重复项
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/description/
前端迷
2019/07/23
3870
【leetcode系列】26. 删除排序数组中的重复项
LeetCode - #26 删除有序数组中的重复项
我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。微博:@故胤道长[1])的 Swift 算法题题解整理为文字版以方便大家学习与阅读。
Swift社区
2022/04/04
2.5K0
LeetCode - #26 删除有序数组中的重复项
推荐阅读
相关推荐
26. 删除有序数组中的重复项
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验