插队问题

那些插队的人

http://www.nowcoder.com/questionTerminal/31c1ae9d1c804b66b6ae17181e76f4f0

本题在于理解插队的过程:

插队是插到队首,且可以多次插队,也就是说假如某人多次插队以最后一次插队为其最终位置,也就是将cutIn数组,倒着遍历(去重),则
得到插队人员最后排列的队形;同时若A插队,A之前的所有不插队人员,均不能在其原来位置,故在插队数组中,最大插队的数字(即排在队伍最后的插队者),其前所有没插队的人员均不在原来位置,其后人员位置不变。

根据上述描述,将1-n分为两类,一类插队(cutIn数组),一类未插队;插队队列倒着遍历(去重),则是插队后排序序列(插队部分),根据
(1至插队队列总数比较)相同则表示位于原位,n减去数组中最大插队数则是未插队部分位于原位数量;n减去上述两者位于原位数量之和,则得到插队影响的数量。

全部评论

相关推荐

05-26 09:07
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务