当前位置:首页 > 编程笔记 > 正文
已解决

力扣-删除有序数组中的重复项-Java

来自网友在路上 195895提问 提问时间:2023-11-10 17:33:40阅读次数: 95

最佳答案 问答题库958位专家为你答疑解惑

26.删除有序数组中的重复项

提示

简单

3.4K

相关企业

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k 。

解题思路:利用快慢指针来找出重复的元素。然后进行覆盖。

public class Solution3 {public static void main(String[] args) {int []nums={0,0,1,1,1,2,2,3,3,4,423,12};int res = removeDuplicates(nums);System.out.println(res);}public static int removeDuplicates(int[] nums) {int slow=0;int fast=1;int count=1;//记录个数,初始化为1int temp=0;//临时变量,用于记录覆盖的位置while (fast< nums.length){if(nums[slow]==nums[fast]){nums[temp]=nums[fast];fast++;}else{slow=fast;temp++;count++;}}return count;}
}

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"力扣-删除有序数组中的重复项-Java":http://eshow365.cn/6-37350-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!