LeetCode第26题删除有序数组中的重复项

继续打卡算法题,今天学习的是LeetCode的第26题删除有序数组中的重复项,这道题目是道简单题。算法题的一些解题思路和技巧真的非常巧妙,每天看一看算法题和解题思路,我相信对我们的编码思维和编码能力有一些帮助。

分析一波题目

哈哈,这个题目还是比较简单的,我们有两种方法可以巧妙的去除重复项

第一种是使用一个map记录出现过的数字,如果没有出现过就不断的填充原数组。

第二种是通过双指针,也是快慢指针。慢指针记录不重复的数据下标,快指针用来循环整个数组。

编码解决

java 复制代码
class Solution {
    public int removeDuplicates(int[] nums) {
        if(nums.length == 0) {
            return 0;
        }

        int slow= 1;
        int fast = 1;
        while(fast<nums.length) {
          int a=  nums[fast];
          int b = nums[fast-1];
          //比较紧挨着的两个数是否相同,不相同需要记录下来
          if(a != b) {
            nums[slow++] = a;
          }
          fast++;
        }
        return slow;
    }
}

总结

这道题目用双指针的效率更高,如果没怎么使用双指针解题,一开始只能想到使用map结构。

相关推荐
哈密瓜的眉毛美几秒前
Java 基础补充:零基础学Java | Scanner 类详解
后端
ma_king2 分钟前
入门 java 和 数据库
java·数据库·后端
平平无奇的开发仔5 分钟前
Mybaitis 项目多模块多依赖xml加载classpath:和classpath*:的区别
后端
神奇小汤圆20 分钟前
MySQL的10种高级SQL,性能飞升
后端
AI探索者23 分钟前
LangGraph 人工干预:Human-in-the-loop 机制详解
后端
神奇小汤圆24 分钟前
Java并发核心:你以为AQS很复杂?无非是"两个队列"和"一个状态"
后端
shark_chili27 分钟前
Spring AI Alibaba 入门与实战:一文构建智能天气查询助手
后端
Java编程爱好者30 分钟前
Java 高频面试题总结(2026通用版)
后端
HelloReader31 分钟前
Wi-Fi CSI 感知技术用无线信号“看见“室内的人
算法
Java水解37 分钟前
Spring Boot 视图层与模板引擎
spring boot·后端