面试经典 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;
    }
}
相关推荐
奔跑的蜗牛ing11 小时前
CentOS Nginx 安装与静态文件服务器配置指南
前端·面试·架构
KaifuZeng14 小时前
通信与接口协议面试五、RS422
嵌入式硬件·面试·通信与接口
Frostnova丶14 小时前
(12)LeetCode 76. 最小覆盖子串
算法·leetcode·职场和发展
旧曲重听115 小时前
为什么现在 RAG 越少越少提及了
数据库·程序人生·职场和发展·agent
SamDeepThinking16 小时前
组合还是继承?我在项目里主要看这两个判断
java·后端·面试
wear工程师16 小时前
setState 到底是不是异步的?这题从 React 16 问到 18,标准答案早就变了
react.js·面试
凯瑟琳.奥古斯特16 小时前
力扣1013三等分解法与C++实现
开发语言·c++·算法·leetcode·职场和发展
凯瑟琳.奥古斯特17 小时前
力扣1012数位DP解法详解
开发语言·c++·算法·leetcode·职场和发展
SamDeepThinking18 小时前
为什么很多人学了Java,还是没真正理解类和对象?
java·后端·面试
阿新聊ai19 小时前
Claude Code 为什么总不懂你的项目?缺一张「项目地图」
前端·后端·面试