面试经典 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;
    }
}
相关推荐
苦瓜小生13 小时前
AI名词大扫盲!最全的面试ai名词集合
人工智能·面试
龙虾PRO13 小时前
能源与股票量化核心差异,AI全链路落地实操手册
java·面试·职场和发展
uzong14 小时前
把一面面试总结做成一个 Skill:重复的事,就别每次都重写
后端·面试
wdfk_prog17 小时前
嵌入式面试真题第 12 题:资源受限长期运行系统的确定性内存管理与内存池架构设计
考研·面试·职场和发展
清泓y18 小时前
Android内存管理与性能优化面试真题
android·面试·性能优化
吃饱了得干活18 小时前
缓存与数据库一致性:从理论到实战
java·后端·面试
黄敬峰19 小时前
React 待办事项 Todos 从零到一:组件化思维、状态管理与父子通信一次讲透
面试
思-无-涯20 小时前
测试面试新趋势:工程思维成关键
人工智能·功能测试·测试工具·职场和发展·可用性测试
FogLetter20 小时前
嘘!WebSocket正在“偷听”你的网络请求——全双工通信的魔法
前端·面试
程序员爱钓鱼20 小时前
Rust HashMap 详解:键值存储、查询、更新与统计
后端·面试·rust