[LeetCode]26.Remove Duplicates from Sorted Array

来源:互联网 发布:北宋出相 知乎 编辑:程序博客网 时间:2024/05/17 06:22

Remove Duplicates from Sorted Array

 Total Accepted: 6585 Total Submissions: 19851My Submissions

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].

【解析】

每次和已经记录的最后一个数组元素比较,如果重复就跳过,否则将其加入数组末尾。

【代码】

/**********************************   日期:2014-01-14*   作者:SJF0115*   题目: 26.Remove Duplicates from Sorted Array*   来源:http://oj.leetcode.com/problems/remove-duplicates-from-sorted-array/*   结果:AC*   来源:LeetCode*   总结:**********************************/#include <iostream>#include <stdio.h>using namespace std;// 时间复杂度 O(n),空间复杂度 O(1)class Solution {public:    //A数组的重要特点是已经排序    int removeDuplicates(int A[], int n) {        if(n == 0){            return 0;        }        //新数组下标        int index = 0;        for(int i = 1;i < n;i++){            if(A[i] != A[index]){                A[++index] = A[i];            }        }        return index+1;    }};int main() {    int result;    Solution solution;    int A[] = {1,1,2,2,2,2,4,4,5,6,8};    result = solution.removeDuplicates(A,11);    printf("Length:%d\n",result);    for(int i = 0;i < result;i++){        printf("%d ",A[i]);    }    return 0;}




3 0