力扣-删除有序数组中的重复项-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;
    }
}
相关推荐
代码游侠1 天前
应用——Linux 标准IO编程
linux·前端·数据库·学习·算法
小尧嵌入式1 天前
在windows上安装ffmpeg及新版ffmpeg命令
c++·windows·算法·ffmpeg
beordie1 天前
LeetCode 1. 两数之和 | 从暴力到哈希表的优化之路
算法
别动哪条鱼1 天前
AVFrame的data数组数据结构详解
网络·数据结构·ffmpeg
free-elcmacom1 天前
机器学习进阶<5>K-means智能客户分群与可视化分析系统
算法·机器学习·kmeans
csuzhucong1 天前
海盐折纸
算法
oioihoii1 天前
单链表与双链表专题详解
数据结构·算法
晞微1 天前
神经网络学习:感知器算法实现与可视化
神经网络·学习·算法
AndrewHZ1 天前
【图像处理基石】RGB图像频域滤波:原理、实现与实战(Python)
图像处理·python·算法·计算机视觉·傅里叶变换·频域滤波·滤波核设计
EXtreme351 天前
栈(Stack)的约束之美:LIFO哲思、实现剖析与算法应用全景深度解析
数据结构·算法··共享栈·链栈·lifo·表达式求值