zoukankan      html  css  js  c++  java
  • 【Remove Duplicates from Sorted Array】cpp

    题目:

    https://leetcode.com/problems/remove-duplicates-from-sorted-array/

    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 0;
            int index = 0;
            for (unsigned int i=1; i<n; i++)
            {
                if( A[index]!=A[i] )
                {
                    A[++index] = A[i];
                }
            }
            return index+1;
        }
    };

    Tips:

    O(n)时间复杂度 O(1)空间复杂度

    常用数组去重技巧 记住即可

    =============================

    第二遍刷的时候,第二次才AC。原因是++prev第一次写成了prev++,细节要注意。

    class Solution {
    public:
        int removeDuplicates(vector<int>& nums) {
                if ( nums.size()==0 ) return 0;
                int prev = 0;
                for ( int i=1; i<nums.size(); ++i )
                {
                    if ( nums[i]!=nums[prev] ) 
                    {
                        nums[++prev] = nums[i];
                    }
                }
                return prev+1;
        }
    };
  • 相关阅读:
    分布式消息系统Kafka初步
    webService 学习
    一个周末掌握IT前沿技术之node.js篇
    mount
    dd
    fsck
    resize2fs
    mkfs
    parted
    tune2fs
  • 原文地址:https://www.cnblogs.com/xbf9xbf/p/4423522.html
Copyright © 2011-2022 走看看