算法十八

电梯算法

算法描述

  • 大厦维护人员最重要的事情之一是保持电梯的合理运行
  • 必须得保证同一时间在电梯上的人数比较合理,这有一个最大值限制
  • 该场景中,电梯可以知道每次进入和走出电梯的人数,单不能知晓电梯中当前有多少人
  • 在此,你需要涉及一个算法,输入为进入人数enter和走出人数exit,以及最大值限制physicalLimit
  • enterexit`数组中的每个值代表每一层楼的进出人数
  • 算法输出为初始阶段电梯中的人数的最小值和最大值组成的数组
  • 若算法的输入不合理,输出空数组即可

参数定义

  • 类名 ElevatorLimit
  • 方法 getRange
  • 输入参数 vector <int>, vector <int>, int
  • 输出 vector <int>
  • 方法声明 vector <int> getRange(vector <int> enter, vector <int> exit, int physicalLimit)

限制条件

  • enterexit包含[1,50]个元素
  • enterexit包含相同的元素个数
  • enterexit中的每个元素的范围在[0,1000]之间
  • physicalLimit在[1,1000]之间

例子

  • 输入
    • enter: {1,0}
    • exit:{0,1}
    • physicalLimit:1
  • 输出
    • 1

测试实例

  • 实例一

    • 输入

      • {1,0}
      • {0,1}
      • 2
    • 输出

      • { 0, 1 }
  • 实例二

    • 输入
      • {0,1}
      • {1,0}
      • 1
    • 输出
      • { 1, 1 }
  • 实例三

    • 输入
      • {0,2}
      • {1,0}
      • 1
    • 输出
      • { }
  • 实例四

    • 输入
      • {6, 85, 106, 1, 199, 76, 162, 141}
      • {38, 68, 62, 83, 170, 12, 61, 114}
      • 668
    • 输出
      • { 223, 500 }
  • 实例五

    • 输入
      • {179, 135, 104, 90, 97, 186, 187, 47, 152, 100, 119, 28, 193, 11, 103, 100, 179, 11, 80, 163, 50, 131, 103, 50, 142, 51, 112, 62, 69, 72, 88, 3, 162, 93, 190, 85, 79, 86, 146, 71, 65, 131, 179, 119, 66, 111}
      • {134, 81, 178, 168, 86, 128, 1, 165, 62, 46, 188, 70, 104, 111, 3, 47, 144, 69, 163, 21, 101, 126, 169, 84, 146, 165, 198, 1, 65, 181, 135, 99, 100, 195, 171, 47, 16, 54, 79, 69, 6, 97, 154, 80, 151, 76}
      • 954
    • 输出
      • { 453, 659 }
  • 实例六

    • 输入
      • {2}
      • {3}
      • 2
    • 输出
      • { }
点赞