假设有n名乘客登上正好有n个座位的飞机。如果第一位乘客遗失了机票并随机选择座位。但是之后,其余乘客将遵循这些操作-
如果仍有门票,请坐在门票上写下自己的座位,
当他们发现自己的座位被占用时,随机挑选其他座位
因此,我们必须找出第n个人获得其自己座位的可能性是多少?因此,如果输入为2,则输出将为0.5。因此,第二个人获得第二席位的概率为0.5(第一个人获得第一席位时)。
为了解决这个问题,我们将遵循以下步骤-
如果n为1,则返回1,否则为0.5
让我们看下面的实现以更好地理解-
class Solution { public: double nthPersonGetsNthSeat(int n) { if (n == 1) return 1; return 0.5; } };
2
输出结果
0.50000