面试经典 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;
    }
}
相关推荐
我命由我123453 小时前
田野笔记极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
局部有解5 小时前
Leetcode Hot100 - 最长连续序列
算法·leetcode·职场和发展
java_nnnn6 小时前
LeetCode刷题滑动窗口(最大连续1的个数三+将x减到0的最小操作数)Java
算法·leetcode·职场和发展
SamDeepThinking6 小时前
synchronized 和 lock 有什么区别?
java·后端·面试
考研保研资料分享6 小时前
普通211核专业保研经验:清华预推免录取与北大、西交面试复盘
面试·职场和发展
背调与用工合规夏律师6 小时前
知情同意在跨境提供与境外接收方信息上的证据要求
职场和发展
人道领域6 小时前
【面试八股速通篇01】锁与并发工具
java·开发语言·面试·c#
SunShaoLu7 小时前
流程图工具怎么选:5 款产品的技术对比与选型实践
人工智能·职场和发展·流程图·效率工具
考研保研资料分享7 小时前
2022数学保研经验:211专业第一的中科大、浙大、南开等五校考核复盘
面试
十年Java程序媛7 小时前
Redis 分布式锁 + GZIP 压缩缓存踩坑|高并发缓存真实线上复盘
java·开发语言·spring boot·redis·分布式·缓存·面试