力扣-删除有序数组中的重复项-Java

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

提示

简单

3.4K

相关企业

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

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k

解题思路:利用快慢指针来找出重复的元素。然后进行覆盖。

java 复制代码
public class Solution3 {
    public static void main(String[] args) {
        int []nums={0,0,1,1,1,2,2,3,3,4,423,12};
        int res = removeDuplicates(nums);
        System.out.println(res);
    }
    public static int removeDuplicates(int[] nums) {
        int slow=0;
        int fast=1;
        int count=1;//记录个数,初始化为1
        int temp=0;//临时变量,用于记录覆盖的位置
        while (fast< nums.length){
            if(nums[slow]==nums[fast]){
                nums[temp]=nums[fast];
                fast++;
            }else{
                slow=fast;
                temp++;
                count++;
            }
        }
        return count;
    }
}
相关推荐
2401_8414956414 小时前
【数据挖掘】Apriori算法
python·算法·数据挖掘·数据集·关联规则挖掘·关联规则·频繁项集挖掘
一路往蓝-Anbo14 小时前
第 2 篇:单例模式 (Singleton) 与 懒汉式硬件初始化
开发语言·数据结构·stm32·单片机·嵌入式硬件·链表·单例模式
疯狂的喵14 小时前
实时信号处理库
开发语言·c++·算法
小O的算法实验室14 小时前
2023年ESWA SCI1区TOP,地面车辆与无人机协同系统的多区域覆盖双层路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
啵啵鱼爱吃小猫咪14 小时前
机器人标准DH(SDH)与改进DH(MDH)
开发语言·人工智能·python·学习·算法·机器人
pp起床14 小时前
回溯算法 | part01
算法
iAkuya14 小时前
(leetcode)力扣100 53课程表(深搜+拓扑排序)
算法·leetcode·职场和发展
范纹杉想快点毕业14 小时前
嵌入式通信协议深度解析:从SPI/I2C到CAN总线的完整实现指南嵌入式工程师的炼成之路:从校园到实战的跨越
linux·运维·服务器·数据库·算法
啊阿狸不会拉杆14 小时前
《数字信号处理》第10章-数字信号处理中的有限字长效应
算法·matlab·fpga开发·信号处理·数字信号处理·dsp
week_泽14 小时前
GBDT 算法中构建第一个弱学习器(CART 回归树)-计算示例
学习·算法·回归·gbdt