您的位置:首页 > 编程语言 > Java开发

LeetCode删除排序数组中的重复项(java)

2018-04-19 15:55 344 查看

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

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

示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1,2。


你不需要考虑数组中超出新长度后面的元素。
JAVA解决办法:

思路:变量i指向数组第一个值,nums[j]为nums[i]之后第一个不为num[i]的数;

判断num[i]和num[j]是否相等,如果相等,j向后移动,如果不相等,将nums[j]的值赋给nums[i]。以此类推,直至j移动到原数组最后一位。
class Solution {
public int removeDuplicates(int[] nums) {
int size=nums.length;
int i=0,j=1;
if(size<=0){
return 0;
}
int newsize=1;
while(j<size){
if(nums[i]<nums[j]){
nums[i+1]=nums[j];
i++;
j++;
newsize++;
}else{
j++;
}
}
return newsize;
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: