zoukankan      html  css  js  c++  java
  • 顺序有序表中删除多余元素

    总时间限制: 1000ms 内存限制: 65535kB

    描述

    编写算法,在一个非递减有序的顺序表中删除所有值相等的多余的元素。要求时间复杂度为O(n),空间复杂度为O(1)。

    输入

    两行,第一行为数据元素的个数n,第二行为n个元素,n<=1000000

    输出

    删除多余元素后的数据序列

    样例输入

    10
    -1 -1 1 2 2 3 3 3 4 5

    样例输出

    -1 1 2 3 4 5


    ac代码

    /*
    @File     :   sqlist_extraElement_delete.cpp
    @Time     :   2020/03/19
    @Contact  :   levarz@163.com
    @Desc     :   顺序有序表中删除多余元素
    */
    #include <iostream>
    #include <stdlib.h>
    
    using namespace std;
    #define LEN 1000010
    //顺序表
    typedef struct 
    {
       int date[LEN]; //数据域
       int len;       //顺序表长度
    }sqlist;
    /**
     * @brief Create a sqlist object
     * 
     * @param list 指向需要创建的顺序表指针
     * @param len  需要创建的顺序表长度
     */
    void create_sqlist(sqlist *&list, int len);
    /**
     * @brief 删除非递减有序顺序表中多余元素
     * 
     * @param lsit 指向需要删除元素的顺序表指针
     */
    void delete_extral_elements(sqlist *&lsit);
    /**
     * @brief display list
     * 
     * @param list 指向需要显示的顺序表指针
     */
    void display(sqlist *&list);
    
    int main(int argc, char const *argv[])
    {
        sqlist *list;
        int n;
        cin >>n;
        create_sqlist(list,n);
        delete_extral_elements(list);
        display(list);
        system("pause");
        return 0;
    }
    void create_sqlist(sqlist *&list, int len)
    {
        list = (sqlist*)malloc(sizeof(sqlist));
        for (int i = 0; i < len; i++) {
            cin >>list->date[i];
        }
        list->len = len;
    }
    void delete_extral_elements(sqlist *&lsit)
    {
        int j = 0;
        for (int i = 1; i < lsit->len; i++) {
           if (lsit->date[j]!=lsit->date[i]) {
               lsit->date[++j] = lsit->date[i];     //自身储存
               lsit->date[j]   = lsit->date[i];     //没有多余开辟空间
           }
        }
        lsit->len = j+1;
    }
    void display(sqlist *&list)
    {
        for (int i = 0; i < list->len; i++) {
            cout <<list->date[i] <<" ";
        } 
    }
    
  • 相关阅读:
    HSSFworkbook,XSSFworkbook,SXSSFworkbook区别总结
    var、let、const的区别
    寻找数组中的质数方法
    lintcode刷题笔记(二)
    CUDA11.2环境上MXNet源码和pytorch源码编译
    protobuf的使用(python)
    Hadoop集群安装-CDH5(5台服务器集群)
    Hadoop 2.6.0 HA高可用集群配置详解(一)
    Hadoop系列之(二):Hadoop集群部署
    Hadoop系列之(一):Hadoop单机部署
  • 原文地址:https://www.cnblogs.com/levarz/p/12779048.html
Copyright © 2011-2022 走看看