当前位置:   article > 正文

leetcode26.(力扣)删除有序数组中的重复项_leetcode 删除有序数组中的重复项

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

要删除升序数组里边的重复项,重复的元素一定是相邻的,只需要将元素和后一个元素比较。

删除重复元素==将不重复的元素移到数组的左边。
使用双指针p,q,p在前,q在后。
①比较p和q位置的元素是否相等。
②如果相等,q后移一位。如果不相等,将q位置的元素复制到p+1位置上,p后移一位,q后移一位。
③重复上述,直到q到达数组的尾端。
返回p+1.

把不重复的元素都放在前边。

 public int removeDuplicates(int[] nums) {
    if(nums == null || nums.length == 0) return 0;
    int p = 0;
    int q = 1;
    while(q < nums.length){
        if(nums[p] != nums[q]){
            nums[p + 1] = nums[q];
            p++;
        }
        q++;
    }
    return p + 1;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号