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结构。

相关推荐
韩立学长14 分钟前
Springboot森林资源检测管理系统xowdi7nq(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
APIshop17 分钟前
高性能采集方案:淘宝商品 API 的并发调用与数据实时处理
linux·网络·算法
rannn_11126 分钟前
【SQL题解】力扣高频 SQL 50题|DAY5
数据库·后端·sql·leetcode·题解
松涛和鸣27 分钟前
DAY38 TCP Network Programming
linux·网络·数据库·网络协议·tcp/ip·算法
ss27331 分钟前
ThreadPoolExecutor七大核心参数:从源码看线程池的设计
java·数据库·算法
+VX:Fegn089532 分钟前
计算机毕业设计|基于springboot + vue健康茶饮销售管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
qq_4335545441 分钟前
C++ 状压DP(01矩阵约束问题)
c++·算法·矩阵
虫小宝42 分钟前
返利app排行榜系统设计:基于大数据计算的实时排名算法实现
大数据·算法
陈橘又青44 分钟前
vLLM-Ascend推理部署与性能调优深度实战指南:架构解析、环境搭建与核心配置
人工智能·后端·ai·架构·restful·数据·vllm
C雨后彩虹1 小时前
字符串拼接
java·数据结构·算法·华为·面试