LeetCode-26:Remove Duplicates from Sorted Array (清除数组重复元素)

来源:互联网 发布:不在乎大国崛起 知乎 编辑:程序博客网 时间:2024/06/05 21:04

Question

Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.

Do not allocate extra space for another array, you must do this in place with constant memory.

For example:

Given input array nums = [1,1,2]

Your function should return length = 2,with the first two elements of nums being 1 and 2 respectively。It doesn’t matter what you leave beyond the new length。

Idea

给定一个已经排序后的数组,移除重复的元素,返回最终的数组的长度。

不能为另外一个数组分配额外的空间,必须使用常量内存完成。

已经排序过的数组,直接利用++i的操作来赋值给不同的元素进行操作就可以。

  • 需要注意,仅需返回最终的数组的长度即可,无需关心在返回的长度之后还存在什么。

Code

++i—Java

public class Solution {    public int removeDuplicates(int[] nums) {        if(nums.length == 0)            return 0;        int i = 0;        for(int j=0; j<nums.length; j++){            if(nums[j] != nums[i]){                nums[++i] = nums[j];            }        }        return ++i;    }}
  • 最后注意,返回的是数组的长度,长度和索引相差1,故返回++i.
  • Runtime:18ms
  • 时间复杂度O(n);空间复杂度O(1)
阅读全文
0 0
原创粉丝点击