我觉得这道题还是比较简单的:
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%
的用户