题目描述:
给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。
不要另外定义一个数组,您必须通过用 O(1) 额外内存原地修改输入的数组来做到这一点。
void SequentialList::DeleteSameElement(SequentialList* seq)
{//seq是个顺序表类对象指针,该对象有一个数据成员data[]
if (seq->IsEmpty())//若顺序表为空,则出错返回
return;
inti = 0, j = 0;
seq->SequentialListByInsertSort();
//把seq递增排序
for (;
ilength;
i++ )
{
if (seq->data[i] != seq->data[j]) {
j++;
seq->data[j] = seq->data[i];
}
}
seq->SetLength(j + 1);
//有(j+1)个相异的元素
【算法|关于删除数组里多余的重复元素】
文章图片
文章图片
文章图片
推荐阅读
- 人工智能|干货!人体姿态估计与运动预测
- 分析COMP122 The Caesar Cipher
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 数据结构与算法|【算法】力扣第 266场周赛
- 数据结构和算法|LeetCode 的正确使用方式
- leetcode|今天开始记录自己的力扣之路
- 人工智能|【机器学习】深度盘点(详细介绍 Python 中的 7 种交叉验证方法!)