zoukankan      html  css  js  c++  java
  • 2.1.1Remove Duplicates from Sorted Array

    description:
        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]
    
    
    
    code1:
    //time : O(n), space:O(1)
    class Solution{
        public:
            int removeDuplicates(vector<int>& nums){
                if(nums.empty()) return 0;
                int index = 0;
                for(int i = 1; i < nums.size(); i++){
                    if(nums[index] != nums[i])
                        nums[++index] = nums[i];
                }
                return index + 1;
            }
    };
    
    code2:
    class Solution{
        public:
            int removeDuplicates(vector<int>& nums){
                return distance(nums.begin(),unique(nums.begin(),nums.end()));
            }
    }
    
    
    code3:
    class Solution{
        public:
            return distance(nums.begin(),removeDuplicates(nums.begin(),nums.end(),nums.begin()));
    }
    
    template<typename InIt, typename OutIt>
    OutIt removeDuplicates(InIt first, InIt last, OutIt output){
        while(first != last){
            *output++ = *first;
            first = upper_bound(first,last,*first);
        }
        return Output;
    }
    怕什么真理无穷,进一寸有一寸的欢喜。---胡适
  • 相关阅读:
    DebugView使用技巧
    网络抓包--Wireshark
    常用curl命令
    chrome.debugger
    修改php.ini 的timezone
    初识Elasticsearch,bulk 操作的遇到的那些事
    chrome 扩展 调试
    sqlite 时间戳转时间
    centos 升级sqlite3
    php 安装redis
  • 原文地址:https://www.cnblogs.com/hujianglang/p/11385531.html
Copyright © 2011-2022 走看看