Leetcode---2465.不同的平均值数目

简介: 简单算法

2465.不同的平均值数目

给你一个下标从 0 开始长度为 偶数 的整数数组 nums 。

只要 nums 不是 空数组,你就重复执行以下步骤:

找到 nums 中的最小值,并删除它。
找到 nums 中的最大值,并删除它。
计算删除两数的平均值。
两数 a 和 b 的 平均值 为 (a + b) / 2 。

比方说,2 和 3 的平均值是 (2 + 3) / 2 = 2.5 。
返回上述过程能得到的 不同 平均值的数目。

注意 ,如果最小值或者最大值有重复元素,可以删除任意一个。

分析

该题一看非常简单,思路是排序然后取最大最小值并且删除,然后可以把求得平均值去重,再求长度即是结果。
直接上代码class Solution: def distinctAverages(self, nums: List[int]) -> int: res=[] while(len(nums)!=0): nums.sort() min=nums.pop(0) max=nums.pop(-1) mid = (min + max) / 2 res.append(mid) return len(set(res))

虽然但是,代码还是太长了,因此参考别人的代码。class Solution: def distinctAverages(self, nums: List[int]) -> int: nums.sort() return len(set(nums[i] + nums[-i - 1] for i in range(len(nums) // 2)))

看他的代码可知,使用了双指针

相关文章
|
3天前
|
算法 测试技术 C#
区间合并|LeetCode2963:统计好分割方案的数目
区间合并|LeetCode2963:统计好分割方案的数目
|
3天前
|
算法 测试技术 C#
【贪心算法】LeetCode2071:你可以安排的最多任务数目
【贪心算法】LeetCode2071:你可以安排的最多任务数目
|
3天前
|
算法 安全 测试技术
[组合数学]LeetCode:2954:统计感冒序列的数目
[组合数学]LeetCode:2954:统计感冒序列的数目
|
3天前
leetcode-1601:最多可达成的换楼请求数目
leetcode-1601:最多可达成的换楼请求数目
26 0
|
3天前
leetcode-1994:好子集的数目
leetcode-1994:好子集的数目
43 0
|
3天前
leetcode-2006:差的绝对值为 K 的数对数目
leetcode-2006:差的绝对值为 K 的数对数目
48 0
|
3天前
[leetcode~数位动态规划] 2719. 统计整数数目 hard
[leetcode~数位动态规划] 2719. 统计整数数目 hard
|
3天前
|
存储
leetcode2744. 最大字符串配对数目
leetcode2744. 最大字符串配对数目
17 0
|
3天前
|
Serverless
leetcode2719. 统计整数数目
leetcode2719. 统计整数数目
14 0
|
3天前
|
算法 测试技术 C#
LeetCode2444: 统计定界子数组的数目
LeetCode2444: 统计定界子数组的数目