Leetcode 数组问题:删除排序数组内的重复项

2019-05-22 06:31:21来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

问题描述:

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

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

问题分析:

不能使用额外的空间,只能在原数组上操作,因为该数组是已排序的,如果存在重复的元素,则这些元素的位置必定是相邻的,

所以可以将前一个元素的值与后一个元素的值作比较,值不相等时,表明这两个元素是移除后的数组元素。

JAVA 实现:

class Solution {
    public int removeDuplicates(int[] nums) {
       int j=nums.length;
       if(j==1){
           return j;
       }
       int k=1;//数组长度
       for(int i=1;i<j;i++){
            if(nums[i-1]!=nums[i]){
                nums[k]=nums[i];//除去nums[0],将新数组元素赋值给nums[k],组成移除重复元素后的数组
                k++;
            }          
        }  
         return k;
    }
}

 

 


原文链接:https://www.cnblogs.com/lingving/p/10897113.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:web应用启动的时候SpringMVC容器加载过程

下一篇:Java之构造方法及this、super关键字