閱讀598 返回首頁    go 技術社區[雲棲]


[LeetCode]26.Remove Duplicates from Sorted Array

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
*   來源:https://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;
}








最後更新:2017-04-03 12:54:29

  上一篇:go android調用服務端的js
  下一篇:go 使用StyleCop進行代碼審查