1 题目描述
2 解题思路
首先,对于不同能力值的人,浏览他们简历的顺序是不会变的,那么我们就看相同能力值的人,两个面试官浏览他们简历的顺序。
我们以小A查看简历的顺序为基准,看小B查看简历的顺序(每一个人的简历被小B查看的次序是不是和小A中的一样)。
由于只有相同能力值的人,才会考虑顺序问题(不同能力值的人,浏览简历的顺序是互不影响的)。所以我们看能力值为k的人的情况,假设能力值为k的人有个,然后这个人组成的序列为。
对于中的第i位,小B可以有()!种不同的查看简历的方法。但如果这一位要和小A中查看简历的顺序一致,那么这一位的取值就需要固定,其他位随机排序,一共有 (-1)!种不同的查看简历的方法。
所以对于 中的第i位,小A和小B同时查看这一位的概率为
中一共有位,所以对于来说,小A和小B同时查看一位的期望为1.
那么我们就看这些投递简历人的能力值序列里面一共有几个不同的数就行了。这个数就是答案
class Solution:
def expectNumber(self, scores: List[int]) -> int:
return len(set(scores))