数组类 总结

1.有序数组去重

 题目描述:

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。

#include <iostream>
using namespace std;
int removeDuplicates(int num[],int length)
{
    int slow,fast;
    slow=0,fast=1;
    while(fast<length)
    {
        if(num[slow]==num[fast])
        {
            fast++;
        }
        else
        {
            slow++;
            num[slow]=num[fast];
            fast++;
        }
        
    }
    return slow+1;
}
int main()
{
    int n;
    printf("输入有序数组的长度:");
    cin>>n;
    int num[n];
    for(int i=0;i<n;i++)
    {
        cin>>num[i];
    }
    n=removeDuplicates(num,n);
    for(int i=0;i<n;i++)
    {
        cout<<num[i]<<" ";
    }
    return 0;

}

发布了47 篇原创文章 · 获赞 29 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览