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

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

作者头像
魚迹
发布于 2023-05-06 13:27:58
发布于 2023-05-06 13:27:58
2.8K00
代码可运行
举报
运行总次数:0
代码可运行

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

1、题目描述

题目描述: 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。 将最终结果插入 nums 的前 k 个位置后返回 k 。 不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 总结: 保持元素的相对位置不变,去重,并将去重后的k个元素存放在nums的前k个位置。

示例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 。不需要考虑数组中超出新长度后面的元素。

2、解题思路

解题思路: 设置两个变量count=1、i=1,初始值均为1。 i作为遍历元素下标,count作为去重数组下标。 在for循环遍历数组,遍历过程中比较元素值,若当前元素与前一元素值相等,结束本次循环进入下一次循环,若不相等则将nums[count++] = nums[i];循环结束后返回count值。

3、代码实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int removeDuplicates(int* nums, int numsSize){
    int count=1;
    for(int i=1;i<numsSize;i++)
    {
        if(nums[i-1]==nums[i])
            continue;
        nums[count++] = nums[i];
    }
    return count;
}

4、解题记录

在解决本次题目时,我最初的想法是使用双层for循环,但在具体实现过程中出现无法实现对重复数>=3的元素进行去重,后借鉴他人解题思路,使用一层for循环,并结合continue实现去重。 提交结果如下。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【每日一题】【leetcode】6. 数组-删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1)额外空间的条件下完成。
aneutron
2022/08/10
4060
(Leetcode 2021 刷题计划) 26. 删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
windism
2021/04/19
4540
力扣26-删除有序数组中的重复项
原题链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/
WuShF
2023/02/17
3680
力扣26-删除有序数组中的重复项
【LeetCode每日一题】80. 删除有序数组中的重复项 II
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。
公众号guangcity
2021/04/22
3560
115.删除有序数组中的重复项 removeDuplicatesFromSortedArray
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
用户11332765
2024/10/28
980
115.删除有序数组中的重复项 removeDuplicatesFromSortedArray
【每日一题】2.LeetCode——删除有序数组中的重复项
给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
爱敲代码的小杨.
2024/05/07
1410
【每日一题】2.LeetCode——删除有序数组中的重复项
☆打卡算法☆LeetCode 26、删除有序数组中的重复项 算法解析
“将给定的有序数组删除重复出现的元素,使每个元素只出现一次,返回删除后数组的长度。”
恬静的小魔龙
2022/08/07
3660
☆打卡算法☆LeetCode 26、删除有序数组中的重复项  算法解析
Leetcode—— 删除排序数组中的重复项——C语言
给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
小李很执着
2024/06/15
1870
Leetcode—— 删除排序数组中的重复项——C语言
LeetCode-26. 删除有序数组中的重复项(java)
        所以实现方法很简单:直接采用快慢指针进行遍历替换,最后将慢指针low输出即是题案。 具体做法: 定义2 个指针,一个在前记作 low,一个在后记作 fast。
bug菌
2023/05/27
3870
LeetCode-26. 删除有序数组中的重复项(java)
数据结构初步(四)- oj练习-线性表之顺序表
请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
怠惰的未禾
2023/04/27
4150
数据结构初步(四)- oj练习-线性表之顺序表
LeetCode 26. 删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
村雨遥
2020/05/06
4150
【leetcode系列】26. 删除排序数组中的重复项
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/description/
前端迷
2019/07/23
3870
【leetcode系列】26. 删除排序数组中的重复项
【算法-初级-数组】删除排序数组中的重复项(多语言版实现)
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
归子莫
2022/01/12
4090
【算法-初级-数组】删除排序数组中的重复项(多语言版实现)
日拱算法:删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
掘金安东尼
2022/09/19
2910
追寻数组的轨迹,解开算法的情愫
题目描述: 给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,元素的顺序可能会发生改变。然后返回数组中与 val 不同元素的个数 k。
Undoom
2024/10/24
1550
追寻数组的轨迹,解开算法的情愫
C语言每日一题(21)删除排序数组中的重复项
给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
对编程一片赤诚的小吴
2024/01/23
2470
C语言每日一题(21)删除排序数组中的重复项
力扣题目汇总(两数之和Ⅱ-输入有序数组,删除排序数组中的重复项,验证回文串)
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
小小咸鱼YwY
2019/07/24
8840
每日一题 | Python3、Java 实战 LeetCode「26. 删除有序数组中的重复项」& 进阶 II
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
与你一起学算法
2021/04/28
1.3K0
【Leetcode-20.有效的括号 -26.删除有序数组中的重复项】
题目:给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足:
YoungMLet
2024/03/01
1580
算法(1)- 删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
小菠萝测试笔记
2021/04/01
2.1K0
推荐阅读
相关推荐
【每日一题】【leetcode】6. 数组-删除排序数组中的重复项
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验