LeetCode 1877.数组中最大数对和的最小值

一个数对 (a,b) 的 数对和 等于 a + b 。最大数对和 是一个数对数组中最大的 数对和 。

比方说,如果我们有数对 (1,5) ,(2,3) 和 (4,4),最大数对和 为 max(1+5, 2+3, 4+4) = max(6, 5, 8) = 8 。
给你一个长度为 偶数 n 的数组 nums ,请你将 nums 中的元素分成 n / 2 个数对,使得:

nums 中每个元素 恰好 在 一个 数对中,且
最大数对和 的值 最小 。
请你在最优数对划分的方案下,返回最小的 最大数对和 。

示例 1:

输入:nums = [3,5,2,3]
输出:7
解释:数组中的元素可以分为数对 (3,3) 和 (5,2) 。
最大数对和为 max(3+3, 5+2) = max(6, 7) = 7 。
示例 2:

输入:nums = [3,5,4,2,4,6]
输出:8
解释:数组中的元素可以分为数对 (3,5),(4,4) 和 (6,2) 。
最大数对和为 max(3+5, 4+4, 6+2) = max(8, 8, 8) = 8 。

提示:

n == nums.length
2 <= n <= 105
n 是 偶数 。
1 <= nums[i] <= 105

贪心法,最大值和最小值一定要成为一个数对,否则最大值和其他任何值成为数对的和都比和最小值成为数对的和要大,然后去掉最大值和最小值后,继续对剩下的元素执行以上过程:

func minPairSum(nums []int) int {
    sort.Ints(nums)
    ans := 0
    for i := 0; i < len(nums); i++ {
        if nums[i] + nums[len(nums)-i-1] > ans {
            ans = nums[i] + nums[len(nums)-i-1]
        }
    }
    return ans
}

如果nums中有n个元素,此算法时间复杂度为O(nlogn),空间复杂度为O(logn),即快排的栈开销。

相关推荐

  1. LeetCode 1877.数组

    2024-03-25 06:22:05       21 阅读
  2. [leetcode] K 数目

    2024-03-25 06:22:05       12 阅读
  3. C语言求数组

    2024-03-25 06:22:05       31 阅读
  4. 算法----K 数目

    2024-03-25 06:22:05       37 阅读
  5. Leetcode373.查找 K 数字

    2024-03-25 06:22:05       6 阅读
  6. PHP获取数组下标

    2024-03-25 06:22:05       32 阅读
  7. LeetCode-410.分割

    2024-03-25 06:22:05       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-25 06:22:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-25 06:22:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-25 06:22:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-25 06:22:05       20 阅读

热门阅读

  1. k8s的volumn解析

    2024-03-25 06:22:05       20 阅读
  2. Flink CDC 1.18.1 Oracle 数据同步到postgresql

    2024-03-25 06:22:05       22 阅读
  3. 数学建模常用代码

    2024-03-25 06:22:05       19 阅读
  4. Flink中流式的各种聚合

    2024-03-25 06:22:05       19 阅读
  5. 【保姆级介绍npm常用命令】

    2024-03-25 06:22:05       18 阅读
  6. MySQL数据库(基础篇二)

    2024-03-25 06:22:05       16 阅读
  7. trt | trt od在linux上编译undefined reference to TIFF

    2024-03-25 06:22:05       15 阅读
  8. Go 实现fsnotify

    2024-03-25 06:22:05       18 阅读
  9. [小程序开发] 模态对话框模块封装

    2024-03-25 06:22:05       18 阅读