leetcode1227_go_飞机座位分配概率

leetcode1227_go_飞机座位分配概率

首页模拟经营飞机GO更新时间:2024-05-19
题目

有 n 位乘客即将登机,飞机正好有 n 个座位。第一位乘客的票丢了,他随便选了一个座位坐下。

剩下的乘客将会:如果他们自己的座位还空着,就坐到自己的座位上,

当他们自己的座位被占用时,随机选择其他座位

第 n 位乘客坐在自己的座位上的概率是多少?

示例 1:输入:n = 1 输出:1.00000

解释:第一个人只会坐在自己的位置上。

示例 2:输入: n = 2 输出: 0.50000

解释:在第一个人选好座位坐下后,第二个人坐在自己的座位上的概率是 0.5。

提示:1 <= n <= 10^5

解题思路分析

1、找规律/数学;时间复杂度O(1),空间复杂度O(1)

func nthPersonGetsNthSeat(n int) float64 { if n == 1 { return 1 } return 0.5 }

2、递推;时间复杂度O(n),空间复杂度O(1)

func nthPersonGetsNthSeat(n int) float64 { res := 1.0 sum := 1.0 // f(n) = 1/n * (f(n-1) f(n-2) f(n-3) ... f(2) 1) for i := 2; i <= n; i { nth := 1.0 / float64(i) res = nth * sum sum = res } return res }总结

Medium题目,概率系列问题,可以看一下具体分析

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved