[Leetcode] Remove Duplicates from Sorted Array

来源:互联网 发布:香港读研 知乎 编辑:程序博客网 时间:2024/05/01 20:59

题目:

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 A = [1,1,2],

Your function should return length = 2, and A is now [1,2].


思路:双指针。

class Solution {public:    int removeDuplicates(int A[], int n) {        if (n <= 0) return n;        int runner = 0;        for (int i = 1; i < n; ++i) {            if (A[i] != A[runner]) {                A[++runner] = A[i];            }        }        return runner + 1;    }};


总结:复杂度为O(n). 利用双指针,后面向前面赋值是数组很常见的操作。另外注意边界条件的判断,return的长度总是 ≥ 1 的,因此当数组长度 ≤ 0 时,需要直接返回。

0 0
原创粉丝点击