【发布时间】:2021-08-30 09:58:53
【问题描述】:
这是面试题:
一个元组代表一个学生,每个科目都有成绩。 (100, 100, 100) 表示学生在所有科目中都获得了 100。
给定一个学生列表,删除所有科目成绩低于所有其他学生的学生。重复直到没有学生被移除。
然后,返回剩余学生的数量。
示例 1
输入:
[(90, 53, 88), (60, 60, 60), (55, 48, 59)]输出:
2第一个学生没有被删除,因为
- 一年级 (90) 高于二年级和三年级学生(分别为 60 和 55)。
- 三年级 (88) 高于二年级和三年级学生(分别为 60 和 59)。
第二个学生没有被删除,因为
- 一年级(60)高于三年级(55)。
- 三年级 (60) 高于三年级学生 (59)。
第三个学生被删除,因为所有成绩都低于其他所有学生。
示例 2
除了第四个学生(新生)之外,这与第一个示例相同
输入:
[(90, 53, 88), (60, 60, 60), (55, 48, 59), (40, 40, 40)]输出:
2第四个学生被删除,因为所有成绩都低于其他所有学生。
现在,其余与“示例1”相同
我不确定如何解决这个问题。有什么想法吗?
【问题讨论】:
-
这个问题我不清楚。也许你对en.wikipedia.org/wiki/Maxima_of_a_point_set感兴趣
-
我认为这个问题是面试官故意倒过来的。与其考虑删除你不想要的学生,不如考虑挑选你想要的学生。
-
问题不清楚:“...在所有科目中都比其他人”?只有一个,不是吗? (或者几个成绩完全相同,不是吗?)
-
我认为它要求删除所有 "dominated" 条目。但不清楚,因为短语“低于其他在所有科目中。”中的“其他”这个词是模棱两可的,他们的意思是低比任何其他人还是低于所有其他人?不清楚,但我倾向于前者。
-
如果这是关于战略优势,那么据我所知,它要求的是
O(n^2)的 IESDS 算法。