zoukankan      html  css  js  c++  java
  • 1877. 数组中最大数对和的最小值 力扣(中等) 简单题,sort+贪心

    题目描述:

    一个数对 (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 。

    题源:https://leetcode-cn.com/problems/minimize-maximum-pair-sum-in-array/

    题解:sort一遍,贪心,头尾数字凑成一对即可

    代码:

    class Solution {
    public:
        int minPairSum(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        int l=0,r=nums.size()-1;
        int res=0;
        while(l<r)
        {
            res=max(res,nums[l]+nums[r]);
            l++;
            r--;
        }
        return res;
        }
    };
    class Solution {
    public:
        int minPairSum(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        int l=0,r=nums.size()-1;
        int res=0;
        while(l<r)
        {
            res=max(res,nums[l]+nums[r]);
            l++;
            r--;
        }
        return res;
        }
    };
  • 相关阅读:
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    如何上传大文件到github上
    第07组 Alpha冲刺(3/4)
    第07组 Alpha冲刺(2/4)
    第07组 Alpha冲刺(2/4)
    第07组 Alpha冲刺(1/4)
  • 原文地址:https://www.cnblogs.com/stepping/p/15034946.html
Copyright © 2011-2022 走看看