zoukankan      html  css  js  c++  java
  • [LeetCode]14. 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 nums = [1,1,2],

    Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively. It doesn't matter what you leave beyond the new length.

    解法:因为数组是排序好的,所以只需判断相邻的两个元素是否相同就可以了。如果前后两个元素相同,则前进一步继续比较,否则将此元素复制到数组第一个重复元素的位置。

    class Solution {
    public:
        int removeDuplicates(vector<int>& nums) {
            int n = nums.size();
            if(n == 0)
                return 0;
            int i = 1, j = 1;
            for(; i < n;)
            {
                if(nums[i - 1] == nums[i])
                    i++;
                else
                    nums[j++] = nums[i++];
            }
            return j;
        }
    };

     若不需要in-place,则可以使用STL的map处理,或者设计Hash表处理。

  • 相关阅读:
    task打印执行结果
    九宫格----记网易游戏2015年研发类笔试题
    第一篇博客
    http超时机制
    SVN错误解决办法
    FFmpeg源码编译
    闲来无事——第一弹 Java基础 基本数据类型
    一个比较好的图标搜索网站
    JS 跑马灯
    Jquery
  • 原文地址:https://www.cnblogs.com/aprilcheny/p/4856895.html
Copyright © 2011-2022 走看看