本文主要是介绍1877.数组中最大数对和的最小值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我觉得这道题还是比较简单的:
1. 排序
2. 设置一个最大值,遍历首尾相加的值为当前值,如果当前值大于最大值,就更新最大值
3. 输出最大值即可时间复杂度是max(排序的复杂度,O(n/2)),由于使用的是python内置的排序函数,
应该不超过O(nlogn)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/20 8:34
# @Author : wutiandeclass Solution:def minPairSum(self, nums:list) -> int:length = len(nums)stack = length//2 # 分成几堆nums.sort() # 排序print(nums)maxRe = nums[0]+nums[length-1]for i in range(1,stack):curRe = nums[i] + nums[length-1-i]if curRe > maxRe:maxRe = curRe# print(maxRe)return maxReif __name__ == '__main__':nums = [3,5,4,2,4,6]s = Solution()ans = s.minPairSum(nums)print(ans)
执行结果:
通过
显示详情
添加备注执行用时:
308 ms
, 在所有 Python3 提交中击败了
70.61%
的用户
内存消耗:
25.7 MB
, 在所有 Python3 提交中击败了
32.92%
的用户
这篇关于1877.数组中最大数对和的最小值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!