2015-4-2的阿里巴巴笔试题:乱序的序列保序输出(bit数组实现hash)

分布式系统中的RPC请求经常出现乱序的情况。
写一个算法来将一个乱序的序列保序输出。例如,假设起始序号是1,对于(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)这个序列,输出是:
1
2
3, 4, 5
6
7, 8, 9, 10

上述例子中,3到来的时候会发现4,5已经在了。因此将已经满足顺序的整个序列(3, 4, 5)输出为一行。

 1 #include<stdio.h>
 2
 3 int main()
 4 {
 5     int num ;
 6     while(scanf("%d",&num)!=EOF)
 7     {
 8         int want = 1; //每行第一个数
 9         int end = 1;  //每行最后一个数
10         int tem , i ;
11         long long x = 0 ;
12         for( i = 0; i < num ; ++ i)
13         {
14             scanf("%d",&tem);
15             x = x^(1<<tem); //设置第tem位为1
16             if( tem == want)
17             {
18                 ++ want ;
19                 int fir = 1 ;
20                 while ((x&(1<<end))!=0)//判断第tem位是否为1
21                 {
22                     if(fir == 1)
23                     {
24                         printf("%d",end);
25                         fir = 0;
26                     }
27                     else  printf(",%d",end);
28                     ++end;
29                 }
30                 printf("\n");
31                 want = end ;
32             }
33         }
34     }
35     return 0;
36 }
时间: 2024-08-07 00:05:10

2015-4-2的阿里巴巴笔试题:乱序的序列保序输出(bit数组实现hash)的相关文章

阿里巴巴 2015 实习笔试题 分布式系统中的RPC请求经常出现乱序的情况 写一个算法来将一个乱序的序列保序输出

分布式系统中的RPC请求经常出现乱序的情况. 写一个算法来将一个乱序的序列保序输出.例如,假设起始序号是1,对于(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)这个序列,输出是: 1 2 3, 4, 5 6 7, 8, 9, 10 上述例子中,3到来的时候会发现4,5已经在了.因此将已经满足顺序的整个序列(3, 4, 5)输出为一行. 要求: 1. 写一个高效的算法完成上述功能,实现要尽可能的健壮.易于维护 2. 为该算法设计并实现单元测试 貌似效率不是很高,有时间的时候改进下.

乱序序列保序输出

题目: http://blog.csdn.net/michael_kong_nju/article/details/44851495 这是一家互联网公司的笔试题,好像没有说保密协议,应该是可以公开的,我也来贡献一下自己的思路和代码. 分布式系统中的RPC请求经常出现乱序的情况. 写一个算法来将一个乱序的序列保序输出.例如,假设起始序号是1,对于(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)这个序列,输出是: 1 2 3, 4, 5 6 7, 8, 9, 10 上述例子中,3到来的

2015年百度实习生前端笔试题上海卷a

1.写出javascript运行结果:alert(‘5’+5); 结果:’55’ 2.写出javascript运行结果:for(var i=0; i<10; i++){} alert(i); 结果:10 3.Cookie.sessionStorage.localStorage的区别 参考:共同点:都是保存在浏览器端,且同源的. 区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递.而sessionStorage和localStorage不会

阿里巴巴笔试题

附加题(三选一) 1.      案例一 1)     案例说明:2012年11月11日,天猫及淘宝创造了191亿元的单日总成交额:2013年的“双11”,天猫及淘宝的总成交额达到350.19亿元,成为全球最大购物狂欢节.如今,便捷丰富的购物体验吸引着越来越多的网购消费者,同时,越来越多的中小企业.小卖家等活跃在阿里巴巴平台上,竞争随之越来越激烈,如何解读大数据.用好大数据进行精细化.精准化运营?已然成为炙手可热的话题!如果,你拥有阿里巴巴的电商大数据,如果,你面向的是千万级的商家和数以亿级的买

2016阿里巴巴笔试题

昨天刚刚考完阿里的秋季校招笔试.40分钟单选和60分钟开放题,选择题50%以上为数学题.还涉及到了操作系统,算法.整理例如以下: 选择题: (1)下列语句中描写叙述最正确的是____. Linux 的线程同步方式有:临界区,内核对象,相互排斥量,条件变量 Linux 的线程同步方式有:临界区,内核对象,相互排斥量,信号量 Linux 的线程同步方式有:临界区,内核对象,条件变量,信号量 Linux 的线程同步方式有:相互排斥锁,内核对象,条件变量,信号量 Linux 的线程同步方式有:相互排斥锁

2015腾讯web前端笔试题

  1 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性) 2 请指出一下代码的性能问题,并经行优化. var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站."; info +="拍拍网于2005年9月12日上线发布,"; info +="2006年3月13日宣布正式运营,"; info +="是目前国内第二大电子商务平台."; info=info.split(&quo

阿里巴巴笔试题集第23题及分析

题目: 一个骰子, 6 面, 1 个面是 1 , 2 个面是 2 , 3 个面是 3 , 问平均掷多少次能使 1 . 2 . 3 都至少出现一次. ?方法: 面对面试概率题几乎屡试不爽的分叉树递归列方程法. ?这是一个求数学期望的问题,最终是求 1 , 2 , 3 出现至少一次的最短长度的期望. ?这样分叉树的每个节点是一个期望状态,而每个分叉是一次投掷结果.将后续期望出现 1 . 2 . 3 各至少一次的情形记作 L 123 (即题目所求),将后续期望出现 1 . 2 各至少一次( 3 无关)

2015阿里实习线上笔试题-附加题1

随机数生成器 计算机使用的随机数生成器往往是伪随机的,为了达到统计意义上的真随机数,可以需要引入系统 外的变量等作为随机种子(如UNIX系统中熵池).假设有一天出现了上帝的投硬币函数: int G(); 由于这里用到的上帝硬币可能不均匀.但可以保证是G()可以x概率返回1,1-x的概率返回0,其中x为未知常数(且x不等于0或1). 请实现目标函数: int F(double p); 要求 F函数以概率p返回1,以1-p返回0. 除了G之外,不使用的任何库函数. PS:定义宏UINT_MAX=0x

2015年校招--华为上机笔试题--大数相乘

#include "stdafx.h" #include<string> #include<iostream> using namespace std; void add(string &sum,string temp) { int len1=sum.size(); int len2=temp.size(); int jw=0; int i,j; for(i=len1-1,j=len2-1;i>=0 && j>=0;i--,j