将数组中的元素去重,并保持数组元素原顺序输出 要求时间复杂度尽可能的小
来源:互联网 发布:北京凶宅数据库名单 编辑:程序博客网 时间:2024/04/30 21:23
#include <stdio.h>#include <string.h>#define N 65536void filter(int a[], int n) {memset(store_order, -1, sizeof(store_order));memset(store_data, -1, sizeof(store_data));for(int i = 0; i < n; ++i) {if(-1 == store_order[a[i]]) {store_order[a[i]] = i;}}for(int i = 0; i < n; ++i) {if(store_order[i] != -1) {store_data[store_order[i]] = i;}}for(int i = 0; i < n; ++i) {if(store_data[i] != -1)printf("%5d", store_data[i]);}printf("\n");}int main(void) {int a[] = {7, 2, 1, 1,1,1,1,1,1,3, 3, 4, 5, 3, 6, 7};filter(a, 16);return 0;}
算法时间复杂度:O(n)
空间复杂度:O(N),N为待处理数据的取值上界
0 0
- 将数组中的元素去重,并保持数组元素原顺序输出 要求时间复杂度尽可能的小
- 第k大(小)数,寻找最小的k个数(进一步要求顺序与原数组中元素顺序一致)
- javascript 数组去重并统计原数组每个元素个数
- 数组添加元素并去重
- 数组元素去重
- 数组元素去重
- 数组/字符串去重并计算各元素的数量
- 试设计一个算法,将数组A(0..n-1)中的元素循环右移k位,并要求空间复杂度为O(1),时间复杂度为O(n)。
- 数组中的最大值,最小值,数组元素之和并逆序输出数组的元素
- 在旋转后的有序数组中查找元素,要求O(logn)的时间复杂度
- 在旋转后的有序数组中查找元素,要求O(logn)的时间复杂度
- 找出大数组array中第k大的元素(要求时间复杂度O(1))
- JS数组元素去重
- js数组元素去重
- matlab 数组元素去重
- js数组元素去重
- 求数组第k小的元素 要求复杂度在O(n)
- 数组去重 (去除数组中的重复元素)
- 淘宝http调用方式
- VisualGDB调试,实现VS环境下调试Android
- 分布式计算、并行计算及集群、网格、云计算的区别
- 多target下工程文件编辑
- linux驱动---DMA操作---驱动编写
- 将数组中的元素去重,并保持数组元素原顺序输出 要求时间复杂度尽可能的小
- 屏蔽Eclipse自带快捷键 消除Eclipse RCP快捷键定义冲突之终极法
- iconv - Convert Character Vector between Encodings
- ASP.NET MVC 入门5: Control 与 View的交互
- 开始设了Robots.txt禁止百度抓取
- 编程之美:小飞的电梯调度(k次停留)
- Gcc 编译与安装
- Linux 静态IP地址设置
- XDCTF WEB-some