一、题目描述:
二、代码解题:
1.不含注释语句的
class Solution:
def distinctAverages(self, nums: List[int]) -> int:
avg = set([])
l = len(nums)//2
for i in range(0,l):
mi = min(nums)
ma = max(nums)
p = (mi+ma)/2
avg.add(p)
nums.remove(mi)
nums.remove(ma)
return len(avg)
2.含注释语句的
class Solution:
def distinctAverages(self, nums: List[int]) -> int:
# 创建一个空集合,用于存储不同的平均数
avg = set([])
# 计算需要计算的平均数的个数
l = len(nums)//2
# 循环计算平均数
for i in range(0,l):
# 找到当前列表中的最小值和最大值
mi = min(nums)
ma = max(nums)
# 计算当前最小值和最大值的平均数
p = (mi+ma)/2
# 将计算出的平均数添加到集合中
avg.add(p)
# 从列表中移除已经使用过的最小值和最大值
nums.remove(mi)
nums.remove(ma)
# 返回不同平均数的个数
return len(avg)
三、知识点整理:
Python中的set()集合有以下常用方法:
1. add(element):向集合中添加元素。
2. clear():清空集合中的所有元素。
3. copy():复制集合。
4. difference(set):返回集合与另一个集合的差集。
5. difference_update(set):移除集合中与另一个集合相同的元素。
6. discard(element):移除集合中指定的元素。
7. intersection(set):返回集合与另一个集合的交集。
8. intersection_update(set):保留集合中与另一个集合相同的元素。
9. isdisjoint(set):判断集合与另一个集合是否没有交集。
10. issubset(set):判断集合是否为另一个集合的子集。
11. issuperset(set):判断集合是否为另一个集合的超集。
12. pop():随机移除集合中的一个元素。
13. remove(element):移除集合中指定的元素,如果元素不存在则抛出异常。
14. symmetric_difference(set):返回集合与另一个集合的对称差集。
15. symmetric_difference_update(set):将集合更新为集合与另一个集合的对称差集。
16. union(set):返回集合与另一个集合的并集。
17. update(set):将集合更新为集合与另一个集合的并集。
常用的我已经标红