力扣26-删除排序数组中的重复项【双指针】

2023-11-05

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例 1:
给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
你不需要考虑数组中超出新长度后面的元素。
示例 2:
给定 nums = [0,0,1,1,1,2,2,3,3,4],
函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。
你不需要考虑数组中超出新长度后面的元素。

class Solution {
    public int removeDuplicates(int[] nums) {
        int i=1;//i慢指针,j快指针
        for(int j=1;j<nums.length;j++){//已知已排序
            if(nums[j-1]!=nums[j]){//故当当前值等于前面时为重复
                nums[i]=nums[j];
                i++;
            }
        }
        return i;
    }
}

双指针汇总技巧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

力扣26-删除排序数组中的重复项【双指针】 的相关文章

  • Linux多线程:条件变量

    条件变量的类型 pthread cond t 作用 满足某个条件阻塞或者解除阻塞某个线程 int pthread cond init pthread cond t restrict cond const pthread condattr t
  • CTFweb篇——html源代码签到题

    0x00 前言 做CTF的web中Html查看源代码的题还是比较简单 对我而言 就是在源代码中找寻相关的关键字或者线索 0x01 签到题 进入靶场发现当前页面 最开始怀疑是靶场原因没进去 仔细研究后发现自己被障眼法了 初次做题的时候 在懵逼
  • java.lang.ArithmeticException: Division undefined 或者 java.lang.ArithmeticException: / by zero

    今天线上报了一个这样的错误 经过排查发现是因为对Bigdecimal类型做除法divide 运算时 除数为0导致的 加了一个非0的判断就好了 当我们的被除数为整型 short int long 时 除数不能为0 除数如果为double 即

随机推荐