HLG 数字去重和排序II【二叉排序树】
Description |
用计算机随机生成了N个0到1000000000(包含0和1000000000)之间的随机整数(N≤5000000),对于其中重复的数字,只保留一个,把其余相同的数去掉。然后再把这些数从小到大排序。 请你完成“去重”与“排序”的工作 |
Input |
输入有2行,第1行为1个正整数,表示所生成的随机数的个数: N 第2行有N个用空格隔开的正整数,为所产生的随机数。 |
Output |
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。 |
Sample Input |
10 20 40 32 67 40 20 89 300 400 15 |
Sample Output |
8 |
code:
#include<stdio.h>#include<stdlib.h>#include<string.h>int b[5000001];int top;typedef struct node{int count;struct node *left ;struct node *right;}node,*trie;void init(trie &p){ p=(trie)malloc(sizeof(node)); p->count=-1; p->left=NULL; p->right=NULL;}void add(trie &p,int m){if(m==p->count)return;if(p->count==-1) { p->count=m;return; }if(m<p->count) { trie q; q=p->left;if(q==NULL) { init(q); p->left=q; } add(q,m); }else { trie q; q=p->right;if(q==NULL) { init(q); p->right=q; } add(q,m); }}void get(trie &p){if(p) {get(p->left); b[top++]=p->count;get(p->right); }}int main(){int i,m,n;while(scanf("%d",&n)!=EOF) { trie root; init(root);for(i=0;i<n;i++) { scanf("%d",&m); add(root,m); } top=0;get(root); printf("%d\n",top); printf("%d",b[0]);for(i=1;i<top;i++) printf(" %d",b[i]); printf("\n"); }return 0;}
转载于:https://www.cnblogs.com/dream-wind/archive/2012/03/16/2400033.html
HLG 数字去重和排序II【二叉排序树】相关推荐
- excel函数去重_将数字去重,然后按从小到大的顺序连接起来!
你好,我是刘卓.欢迎来到我的公号,excel函数解析.今天来分享一个案例--对数字去重,排序,连接.-01-下图A1:I7是数据源,都是0-9之间的数字.现在的要求是将每行的数字去重,然后按从小到大的 ...
- javascript实现 文本过滤 找出一段文本中的所有数字/数值 并在去重后排序
文章目录 Intro 浏览器控制台 JavaScript API测试 从一串文本中按照某种模式提取出匹配的子字符串 String.prototype.match(regexp) 数组去重 Array- ...
- java随机数去重排序_数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数...
数组去重及排序: var arr = [1,5,1,2,6,8,1,81,9,0]; for(var i=0;i for(var j=i+1;j if(arr[i] == arr[j]){ arr.s ...
- MapReduce基础开发之二数据去重和排序
因Hadoop集群平台网络限制,只能在eclipse里先写好代码再提交jar到集群平台namenode上执行,不能实时调试,所以没有配置eclipse的hadoop开发环境,只是引入了hadoop的l ...
- linux统计排序命令,Linux命令去重统计排序
利用Linux命令进行文本按行去重并按重复次数排序 linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并 ...
- C++数组去重与排序
一.整型数组去重与排序: [题目描述] 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把 ...
- 超简单的C++去重、排序
一.去重函数unique 头文件:algorithm,所以别忘了加上一句:#include <algorithm> unique的作用就是"去除"数组中重复的元素 #i ...
- 数组元素的去重与排序
003-华为机试-在线训练 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把 ...
- 【leetcode】324.摆动排序 II (四种解法,快速排序+3way-partition等,java实现)
324. 摆动排序 II 难度中等 给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序. 示例 1 ...
最新文章
- 《Web接口开发与自动化测试 -- 基于Python语言》 ---前言
- 『中级篇』阿里云安装Docker企业版UCP和DTR(59)
- 为全局变量赋值_Postman全局变量设置和运用
- 《速读ES7》新增特性目录列表
- java学习是什么_学习JAVA有什么作用?
- [ 2022年4月8日更新 ]Typecho Handsome主题美化教程
- Laravel 使用firstOrCreate 报错MassAssignmentException
- 三种编码器协议(Endat\BISS\SSI)
- word参考文献后面空格太大
- win10关闭windows聚焦_Windows聚焦功能无法使用怎么办_win10锁屏聚焦功能不更新教程 - 系统家园...
- ESP32播放MP3音乐-无需SD卡-WM8978-ESP32解码MP3
- 计算机表格常用根式,平方根表
- 传统蓝牙BR/EDR的搜索Inquiry
- 【Bug解决】UnpicklingError: A load persistent id instruction was encountered, but no persistent_load.
- 回顾12306 成长的烦恼
- Android Studio 如何查看Sqlite数据文件
- linux美元符号含义
- Ubuntu 16.04 使用burg修改开机引导主题
- LSTM(long short term memory)长短期记忆网络
- openstack glance-api-paster
热门文章
- FPGA扩展SRAM
- 看完Mate 10拍下的精美空中照片后,你是否也想坐次飞机试拍下?
- andorid 三种方式的练习
- C# 版本设计模式(Design Pattern)(转)
- Linux(CentOS)系统下设置nginx开机自启动
- 用于jqGrid获取SQL Server中数据的简单分页存储过程及sp_executesql的一点使用方法...
- 【重点 递归 动态规划 正则表达式匹配】LeetCode 10. Regular Expression Matching
- Excel按某一列排序
- python的list()列表数据类型的方法详解
- 洛谷 P2647 最大收益