面试经典 150 题 ---- 删除排序数组中的重复项

面试经典 150 题 ---- 删除排序数组中的重复项

删除排序数组中的重复项

方法一:双指针

有是一个原地修改的题目,大概率依旧是双指针。

定义 right 表示遍历数组到达的下标位置,left 指针表示下一个不同元素将要填入的下标位置,两个指针初始都指向 1。

java 复制代码
class Solution {
    public int removeDuplicates(int[] nums) {
        int len = nums.length;
        int left = 1, right = 1;
        while (right < len) {
            if (nums[right] != nums[right - 1]) {
                nums[left] = nums[right];
                left ++ ;
            }
            right ++ ;
        }
        return left;
    }
}
相关推荐
时间的拾荒人15 分钟前
CMake 实战指南:从基础语法到静态库/动态库制作与链接
开发语言·c++·面试
IT规划师16 小时前
编程术语中的同步与异步:从"等不等"到工程取舍
后端·面试
考研保研资料分享21 小时前
2022环境工程保研北师大:三校专业追问、论文贡献与择校复盘
面试
axe_hu1 天前
AI产品经理的职业规划与学习路径
人工智能·职场和发展·产品经理·学习方法
Rain的Java大神之路1 天前
面试官让你把 LLM、RAG、Agent、MCP 串起来讲清楚,90% 的 Java 工程师当场露馅
java·后端·面试
狂师1 天前
我开发了一款免费开源的测试开发刷题学习网站
面试·开源·测试
利威尔xu1 天前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
利威尔xu2 天前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
IT规划师2 天前
面试中被嘲笑Token放在redis里,该如何应对?
redis·面试