1227. 飞机座位分配概率
有 n
位乘客即将登机,飞机正好有 n
个座位。第一位乘客的票丢了,他随便选了一个座位坐下。
剩下的乘客将会:
如果他们自己的座位还空着,就坐到自己的座位上,
第 n
位乘客坐在自己的座位上的概率是多少?
示例 1:
输入:n = 1 输出:1.00000 解释:第一个人只会坐在自己的位置上。
示例 2:
输入: n = 2 输出: 0.50000 解释:在第一个人选好座位坐下后,第二个人坐在自己的座位上的概率是 0.5。
提示:
1 <= n <= 10^5
原站题解
rust 解法, 执行用时: 2 ms, 内存消耗: 1.9 MB, 提交时间: 2024-10-04 08:30:05
impl Solution { pub fn nth_person_gets_nth_seat(n: i32) -> f64 { if n == 1 { 1.0 } else { 0.5 } } }
cpp 解法, 执行用时: 0 ms, 内存消耗: 7.5 MB, 提交时间: 2024-10-04 08:29:42
class Solution { public: double nthPersonGetsNthSeat(int n) { return n == 1 ? 1 : 0.5; } };
java 解法, 执行用时: 0 ms, 内存消耗: 39.8 MB, 提交时间: 2024-10-04 08:29:23
class Solution { public double nthPersonGetsNthSeat(int n) { return n == 1 ? 1 : 0.5; } }
javascript 解法, 执行用时: 76 ms, 内存消耗: 41.4 MB, 提交时间: 2022-11-26 17:44:41
/** * @param {number} n * @return {number} */ var nthPersonGetsNthSeat = function(n) { if (n <= 2) { return 1.0 / n; } let prob = 0.5; for (let i = 3; i <= n; i++) { prob = (1.0 + (i - 2) * prob) / i; } return prob; };
golang 解法, 执行用时: 20 ms, 内存消耗: 1.8 MB, 提交时间: 2022-11-26 17:44:18
func nthPersonGetsNthSeat(n int) float64 { if n <= 2 { return 1 / float64(n) } prob := 0.5 for i := 3; i <= n; i++ { prob = (1 + float64(i-2)*prob) / float64(i) } return prob }
python3 解法, 执行用时: 380 ms, 内存消耗: 14.9 MB, 提交时间: 2022-11-26 17:43:57
class Solution: def nthPersonGetsNthSeat(self, n: int) -> float: if n <= 2: return 1 / n prob = 0.5 for i in range(3, n + 1): prob = (1 + (i - 2) * prob) / i return prob
golang 解法, 执行用时: 0 ms, 内存消耗: 1.8 MB, 提交时间: 2022-11-26 17:43:26
func nthPersonGetsNthSeat(n int) float64 { if n == 1 { return 1.0 } return 0.5 }
javascript 解法, 执行用时: 56 ms, 内存消耗: 40.8 MB, 提交时间: 2022-11-26 17:43:16
/** * @param {number} n * @return {number} */ var nthPersonGetsNthSeat = function(n) { return n === 1 ? 1.0 : 0.5; };
python3 解法, 执行用时: 32 ms, 内存消耗: 14.9 MB, 提交时间: 2022-11-26 17:42:50
class Solution: def nthPersonGetsNthSeat(self, n: int) -> float: return 1.0 if n == 1 else 0.5