LeetCode-数组-删除有序数组重复元素
题目描述
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
解题思路
采用双指针方式处理。
- 初始指针 i, j 位置为 0
- 指针 j 先向右移动
- 比较指针 i,j 元素是否相同,若指针i,j元素相同则指针 j 继续向右移动;反之将指针 j 元素复制到指针 i + 1 处元素
- 当指针 j 移动到数组末尾时则停止
其流程如下图所示:
实现
public static int solution (int[] nums) {int i = 0, j = 0;while (true) {// 指针 j 向右移动j++;// 指针 j 移动到数组末尾则退出,说明数组元素都判断了去重if (j >= nums.length) {break;}if (nums[j] == nums[i]) {// 指针 i, j 元素相同,说明重复元素;// 指针 j 继续向右移动continue;} else {// 指针 i, j 元素不相同;则将指针 j 元素复制到 指针 i 后一位,这样就保证指针 i 后元素不重复nums[i + 1] = nums[j];// 指针 i 向右移动,继续处理i++;}}return i + 1;
}
LeetCode-数组-删除有序数组重复元素相关推荐
- LeetCode算法 删除有序数组中的重复项 删除有序数组中的重复项|| C++
目录 题目 删除有序数组中的重复项 参考答案 题目 删除有序数组中的重复项|| 参考答案 题目 删除有序数组中的重复项 给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ...
- 14. Leetcode 80. 删除有序数组中的重复项 II (数组-同向双指针-快慢指针)
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...
- 8. Leetcode 26. 删除有序数组中的重复项 (数组-同向双指针-快慢指针)
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件 ...
- [leetcode]26.删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...
- leetcode 26. 删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...
- leetcode 80. 删除有序数组中的重复项 II
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的 ...
- LeetCode 26 删除有序数组中的重复项
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 解决方案 class Solution {public in ...
- 【数据结构与算法】之深入解析“删除有序数组中的重复项”与“移除元素”的求解思路与算法示例
删除有序数组中的重复项 一.题目要求 给你一个升序排列的数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度.元素的相对顺序应该保持 一致 . 由于在某些语言中不 ...
- 力扣 26.删除有序数组中的重复元素
文章目录 题目 思路 AC代码 收获 题目 删除有序数组中的重复元素 思路 快慢指针.快指针不断向前走.判断快指针所指的数与快指针前面的数是否相等,如果相等就说明是重复的,要继续向后移动,如果不相等, ...
- 力扣——删除有序数组中的重复项
删除有序数组中的重复项 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 ...
最新文章
- 安卓2.2系统上网设置
- IOS XCode11开发嵌入网页
- onuninitialized和ajax,12.3 Prototype对Ajax的支持
- Linux的shell编程
- 平均要取多少个(0,1)中的随机数才能让和超过1
- 五、Docker+Sqlserver
- linux中文件查找命令
- SAP 创始人:打造“一连串的应用程序”
- E - 确定比赛名次(拓补排序)
- java7安装教程_JAVA JDK7安装和配置 JAVA JDK7安装配置教程
- R语言:医药股票数据分析
- 软件测试中期答辩,中期答辩材料创新张颖
- 【Beyond Compare】秘钥到期解决方法
- 释放docker日志所占空间
- jupyter添加快捷方式
- ios自己搭建服务器证书,iOS一步一步实现Https自建证书校验
- 金庸小说中的农业漏洞[ZT]
- 计算机桌面分区,明基XL2430T如何使用桌面分区?
- Linux下的FTP安装和登录
- redis搭建三主三从架构