`
SunnyYoona
  • 浏览: 361531 次
社区版块
存档分类
最新评论

[LeetCode]26.Remove Duplicates from Sorted Array

 
阅读更多

Remove Duplicates from Sorted Array

Total Accepted:6585Total Submissions:19851My Submissions

Given a sorted array, remove the duplicates in place such that each element appear onlyonceand 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;
}








分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics