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

2021-06-05 21:03

阅读:534

标签:完成   return   solution   fas   数组   targe   有序数组   元素   com   

题目描述

给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素最多出现两次,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组 并在使用O(1)额外空间的条件下完成。
80. 删除有序数组中的重复项 II 难度:简单

题解

直接用双指针。slow指针指向新的数组(输入数组的前面)的第一项,fast指针指向当前处理的输入数组的项。
若slow 最后,输入数组的0~slow项为处理后的数组。处理后的数组长度为slow + 1。
代码:

class Solution {
    public int removeDuplicates(int[] nums) {
        int slow = -1;
        int fast = 0;
        for(;fast 

只遍历一遍数组,时间复杂度为O(n)。辅助空间为常数空间O(1)。

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

标签:完成   return   solution   fas   数组   targe   有序数组   元素   com   

原文地址:https://www.cnblogs.com/hickey2048/p/14623403.html


评论


亲,登录后才可以留言!