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

相关推荐
喵叔哟3 分钟前
6.配置管理详解
后端·python·flask
yuuki2332334 分钟前
【C++】类和对象(上)
c++·后端·算法
韩数7 分钟前
小白也能看懂! 今年爆火的 MCP 协议究竟是什么?写给普通人的 MCP 指南
后端·aigc·mcp
dangdang___go11 分钟前
动态内存管理||malloc和free.realloc和calloc
c语言·开发语言·算法·动态内存管理
l***466811 分钟前
SSM与Springboot是什么关系? -----区别与联系
java·spring boot·后端
周杰伦_Jay23 分钟前
【Go 语言主流 Web】 框架详细解析
开发语言·后端·微服务·架构·golang
数字化脑洞实验室24 分钟前
智能决策与决策优化:从算法到产业的演进逻辑
算法
cpp_250124 分钟前
P5412 [YNOI2019] 排队
数据结构·c++·算法·题解·洛谷
风的归宿5528 分钟前
openresty容器导出火焰图
后端
i听风逝夜29 分钟前
Web 3D地球实时统计访问来源
前端·后端