首页 > 其他分享 >删除有序数组中的重复项 II

删除有序数组中的重复项 II

时间:2024-09-04 21:53:40浏览次数:12  
标签:删除 nums 元素 II length 数组 长度

给你一个有序数组 nums ,请你原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。

示例 1:

输入:nums = [1,1,1,2,2,3]
输出:5, nums = [1,1,2,2,3]
解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。 不需要考虑数组中超出新长度后面的元素。

示例 2:

输入:nums = [0,0,1,1,1,1,2,3,3]
输出:7, nums = [0,0,1,1,2,3,3]
解释:函数应返回新长度 length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。不需要考虑数组中超出新长度后面的元素。
class Solution {
    public int removeDuplicates(int[] nums) {

        if(nums.length <= 2) {
            return nums.length;
        }

        //slow表示处理完成的数组长度,fast表示扫描过的数组长度
        int fast = 2, slow = 2;

        while(fast < nums.length) {
            //最多出现两次,所以将slow-2处的数与fast处的数进行比较
            if(nums[slow-2] != nums[fast]) {
                nums[slow] = nums[fast];
                slow++;
            }
            fast++;
        }

        return slow;
    }
}

标签:删除,nums,元素,II,length,数组,长度
From: https://www.cnblogs.com/cymxd/p/18397414

相关文章

  • 完全删除或卸载PHPnow环境配置包(图解)
    PHPnow是PHP平台很方便的搭建工具聚,但俗话说的好,轻声容易送神难。PHPnow不是常规的安装软件,所以他没有像一般安装在Windows下的软件中一样的卸载程序。如果用户直接把他的安装目录删除,系统是拒绝的。有些朋友可能使用phpnow久了,觉得它有庞大,于是乎卸载phpnow,这里分享一下phpnow卸......
  • 213. 打家劫舍 II(leetcode)
    https://leetcode.cn/problems/house-robber-ii/description/灵神题解:https://leetcode.cn/problems/house-robber-ii/solutions/2445622/jian-ji-xie-fa-zhi-jie-diao-yong-198-ti-qhvri/classSolution{publicintrob(int[]nums){//f[i]表示前i个房屋选......
  • 最大上升子序列 II
    序列:可以不连续,但与原数列当中出现的先后顺序要相同;上升子序列:需要满足单调性-单调递增算法1(贪心+二分)O(nlogn)时间复杂度二分查找一个数的最小的最大值O(logn);一共有n个数进行二分O(nlogn);贪心分析样例:731218561.首先分析长度为1的上升子序列—......
  • 关于Java链表的一些操作以及力扣原题刷刷刷——反转链表、删除链表的倒数第N个节点
    1、反转链表1.1环境准备,可以自己先尝试实现/***@AuthorMiku*@Date2024/09/0209:54*@DescriptionTODO*@Version1.0*/publicclassSolution{staticclassListNode{intval;ListNodenext;ListNode(intval){......
  • 34. 在排序数组中查找元素的第一个和最后一个位置
    这题还蛮有意思的,看了下解析,分成两部分分开来求解。左右边界都是普通的二分查找算法,重点就是当等于的时候的处理,左边界函数等于目标值的时候,要记录当前mid的值作为边界,同时区间要向左移。反过来,右边界的话,区间要向右移动。记得记录相等时候的mid值,最后一次相等记录的值也就是这......
  • 初次部分使用c++语言无意发现个数组元素查找的代码
    includeusingnamespacestd;//定义结构体structMyArray{intarr[100];//数组,假设最大长度为100intsize;//数组当前元素数量};//输入函数,修改数组内容voidscanf(MyArray&myArray){for(inti=0;i<myArray.size;i++){cin>>myArray.arr[i];//键盘......
  • IIS相关错误报错汇总整理及解决方案
    解决方案400BadRequest:检查请求是否包含错误的信息或格式。401Unauthorized:确认是否已经进行了身份验证。403Forbidden:检查是否有足够的权限访问资源。404NotFound:确认请求的URL是否正确,资源是否存在。500InternalServerError:检查服务器日志,寻找错误信息。503Ser......
  • 删除使用add-apt-repository添加的存储库
    我正在安装MicrosoftSQLServerforLinux,我不小心用sudoadd-apt-repository"$(wget-qO-https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"为错误的Linux版本(我想要的是20.04版本)添加了存储库。如何撤消上述行的结果?您可以像这样删除它:sudo......
  • LeetCode刷题—数组
    一:数组操作1、数组:在连续的内存空间当中;存储一组相同类型的元素2、元素和索引:数组的索引下标从0开始3、数组的访问和数组的搜索(1)数组的访问a=[1,2,3]a[1]=2#数组的访问;通过下标索引进行访问(2)数组的搜索a=[1,2,3]foriina:print(i)4、数组的四种方法访问0(1)......
  • 2024-09-04:用go语言,给定一个长度为n的数组 happiness,表示每个孩子的幸福值,以及一个正
    2024-09-04:用go语言,给定一个长度为n的数组happiness,表示每个孩子的幸福值,以及一个正整数k,我们需要从这n个孩子中选出k个孩子。在筛选过程中,每轮选择一个孩子时,所有尚未选中的孩子的幸福值都会减少1。需要注意的是,幸福值不能降低到负数,只有在其为正数时才能减少。我们的目标是......