我觉得这道题还是比较简单的:
1. 排序
2. 设置一个最大值,遍历首尾相加的值为当前值,如果当前值大于最大值,就更新最大值
3. 输出最大值即可
时间复杂度是max(排序的复杂度,O(n/2)),由于使用的是python内置的排序函数,
应该不超过O(nlogn)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/20 8:34
# @Author : wutiande
class 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 maxRe
if __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%
的用户