给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 给定 nums = [1,1,1,2,2,3],
leetcode80 删除排序数组中的重复项II
函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。
你不需要考虑数组中超出新长度后面的元素。/* * 题目:80.删除排序数组中的重复项 * author:Whywait * 核心算法:双指针法(快慢指针) * 注意事项: * 对于数组越界的判断 */ int removeDuplicates(int* nums, int numsSize) { int slow = 0, fast = 0; while (fast < numsSize) { int cur = nums[fast]; nums[slow++] = nums[fast++]; if (fast == numsSize) break; if (cur == nums[fast]) nums[slow++] = cur; while (fast < numsSize && nums[fast] == cur) fast++; } return slow; } /* * 举一反三: * “每个元素最多出现两次”-->“每个元素最多出现 k 次” */ int removeDuplicates(int* nums, int numsSize,int k) { int slow = 0, fast = 0; while (fast < numsSize) { int cur = nums[fast], temp = 0; while (temp < k && fast < numsSize && nums[fast] == cur) { nums[slow++] = nums[fast++]; temp++; } while (fast < numsSize && nums[fast] == cur) fast++; } return slow; }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算