数组

1. 去除数组中的重复元素

题目

已知一个已经排序的数组,去除数组中的重复元素,返回数组的长度。

思路

使用双指针,维护一个滑动窗口,窗口内的元素全部为重复的元素。问题转化为,确定两个指针什么时候移动,怎么移动的问题了。

代码

int getLength(std::vector<int> &num)
{
    int index = 1;
    for (int i = 1; i < num.size(); i++) {
        if (num[i] != num[index-1]) {
            num[index++] = num[i];
        }
    }
    return index;
}

2. 去重数组中的重复元素2

题目

已知一个有重复元素的数组,去除其中的重复元素最多保留两个,返回剩余数组中的元素的个数

思路

使用双指针维护一个滑动窗口

代码

int getLength(std::vector<int> &num)
{
    int index = 2;
    for (int i = 2; i < num.size(); i++) {
        if (num[i] != num[index-2]) {
            num[index++] = num[i];
        }
    }
    return index;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组 记录《剑指offer》中所有关于数组的题目,以及LeetCode中的相似题目 相关题目列表 说明 由于简书...
    wenmingxing阅读 1,541评论 1 12
  • PHP有很多关于数组的函数,方便数组操作。 定义 数组每个实体包含两个项:key和value,可以通过查询键来获取...
    天承本草2020阅读 355评论 0 0
  • 旋转数组的最小数字 题目 给定一个递增的旋转数组A,返回旋转数组中的最小值。旋转数组:给定一个已排序的数组,假设为...
    蓝雪冬荷阅读 473评论 0 0
  • ​首先了解下基本概念,什么是肥胖? 肥胖是体内脂肪,尤其是甘油三酯积聚过多而导致的一种状态。 那为什么会肥胖呢? ...
    健康达人ABC阅读 203评论 0 0
  • 01 1986年的夏天。 阿莲婶的丈夫五年前去世了,留下了分别9岁、7岁的两个儿子和一个5岁的女儿。这天,当爹又当...
    心语心妤阅读 1,283评论 13 12