营销型网站建设答辩,大型网站开发流程,定制网站制作费用,网站建设怎么样工作室题目
你有一个初始为空的浮点数数组 averages。另给你一个包含 n 个整数的数组 nums#xff0c;其中 n 为偶数。 你需要重复以下步骤 n / 2 次#xff1a; 从 nums 中移除 最小 的元素 minElement 和 最大 的元素 maxElement。 将 (minElement maxElement) / 2 加入到 aver…题目
你有一个初始为空的浮点数数组 averages。另给你一个包含 n 个整数的数组 nums其中 n 为偶数。 你需要重复以下步骤 n / 2 次 从 nums 中移除 最小 的元素 minElement 和 最大 的元素 maxElement。 将 (minElement maxElement) / 2 加入到 averages 中。 返回 averages 中的 最小元素。
示例 1 输入 nums [7,8,3,4,15,13,4,1] 输出 5.5 解释
步骤numsaverages0[7,8,3,4,15,13,4,1][]1[2,3,7,8][5]2[3,7][5,5]3[][5,5,5]
提示 2 n nums.length 50 n 为偶数。 1 nums[i] 50
答案
我的方法一 第一次采用的是for循环这个题很简单非常容易就能做出来但是为什么我用了两个办法的因为第一次提交的代码用时比较高排名靠后于是就想能不能用更快更高效的方法试一试因此今天是两套方法。
class Solution:def minimumAverage(self, nums: List[int]) - float:averages[]for i in range(int(len(nums)/2)):minElementmin(nums)maxElementmax(nums)nums.remove(minElement)nums.remove(maxElement)averages.append((maxElementminElement)/2)return min(averages)我的方法二 第二个采用的是while循环不过我是现将它进行了排序这样我认为会更快一点事实结果也是如此。
class Solution:def minimumAverage(self, nums: List[int]) - float:averages[]nums.sort()nlen(nums)i0while True:averages.append((nums[i]nums[n-i-1])/2)if in-i-2:return min(averages)i1官方的方法排序 首先将 nums 从小到大进行排序然后枚举 i∈[0, n/2)取 (nums[i]nums[n−1−i])/2的最小值。
class Solution:def minimumAverage(self, nums: List[int]) - float:nums.sort()res, n inf, len(nums)for i in range(n // 2):res min(res, (nums[i] nums[n - 1 - i]) / 2)return res
作者力扣官方题解 链接在这里 来源力扣LeetCode 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。