阿里2015年4月实习生招聘研发岗笔试题——RPC题解
2015-04-17 08:52
330 查看
分布式系统中的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. 为该算法设计并实现单元测试
写一个算法来将一个乱序的序列保序输出。例如,假设起始序号是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. 为该算法设计并实现单元测试
void Insert(std::list<int> &Request,int val) { std::list<int>::iterator current = Request.begin(); while(current!=Request.end() && *current<val) { ++current; } Request.insert(current,val); } void Solution(std::istream &In) { std::list<int> Request; int next = 1; int val; while(In>>val) { if(val==next) { std::cout << val << ' '; ++next; while(!Request.empty() && Request.front()==next) { std::cout << Request.front() << ' '; Request.pop_front(); ++next; } std::cout << std::endl; } else { Insert(Request,val); } } }
相关文章推荐
- 2017阿里研发工程师C/C++实习生招聘笔试题
- 阿里实习生招聘笔试题目
- 2014-03-29.阿里实习生招聘笔试题目
- 常见Java问题及笔试题(十七)——阿里2017实习生研发题
- 网易互娱2017实习生招聘游戏研发工程师在线笔试第二场(神奇的数)
- 2014年阿里武汉实习生招聘笔试题
- 2014阿里暑假实习生招聘笔试题
- 百度地图2015年实习生招聘(研发)笔试题浅析
- 转载--阿里实习生招聘笔试题目
- 网易互娱2017实习生招聘游戏研发工程师在线笔试第二场 C
- [置顶] 2014-03-29.阿里实习生招聘笔试题目
- 阿里2015实习生校园招聘C/C++研发工程师面试经历
- (转)2014-03-29.阿里实习生招聘笔试题目
- 阿里 2016届实习生招聘笔试
- 百度2011年实习生招聘核心研发岗位笔试试题
- 面试题---2014.3.29阿里巴巴实习生招聘-研发工程师笔试题
- 2014-03-29.阿里实习生招聘笔试题目
- [腾讯面试] 2016届实习生招聘研发面试经验(已获阿里内推+腾讯offer)
- 百度2011年实习生招聘核心研发岗位笔试试题
- 2014.3.29阿里巴巴实习生招聘-研发工程师笔试题