zoukankan      html  css  js  c++  java
  • 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("
    ");
    31                 want = end ;
    32             }
    33         }
    34     }
    35     return 0;
    36 }
  • 相关阅读:
    用PYTHON修改电脑IP地址
    PYTHON os 模块详解
    django 笔记
    PYTHON实战目录
    群晖PLEX设置方法
    jellin docker 群晖设置方法转自先生
    PYTHON ftp 上传方法
    打包驱动EXSI
    我的PYTHON老师ALEX
    安装WHELL
  • 原文地址:https://www.cnblogs.com/xiaoyesoso/p/4388682.html
Copyright © 2011-2022 走看看