栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

五月集训——Day3:1877

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

五月集训——Day3:1877

文章目录
    • ***、题目链接
    • 一、题目
      • 1、题目描述
      • 2、基础框架
    • 二、解题报告
      • 1、思路分析
      • 2、时间复杂度
      • 3、代码详解
    • 三、写在最后

***、题目链接

        Day3:Leetcod 1877. 数组中最大数对和的最小值

一、题目 1、题目描述

        一个数对 (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 中每个元素 恰好 在 一个 数对中,且
    最大数对和 的值 最小 。
  • 请你在最优数对划分的方案下,返回最小的 最大数对和


        样例输入: [3,5,2,3];
        样例输出: 7。

2、基础框架
  • C++给出的代码框架如下:
class Solution {
public:
    int minPairSum(vector& nums) {
    }
};

二、解题报告 1、思路分析

       ( 1 ) (1) (1) 排序;
       ( 2 ) (2) (2) 最大加最小,次打加次小,依次类推。

2、时间复杂度

       O ( n ) O(n) O(n) , n n n 为字符串长度。

3、代码详解
class Solution {
public:
    int minPairSum(vector& nums) {
        int n = nums.size();
        sort(nums.begin(), nums.end());
        int temp = -1;
        for(int i = 0; i <= n / 2; i ++){
            temp = max(temp, nums[i] + nums[n - 1 - i]);
        }
        return temp;
    }
};

三、写在最后

          还是双指针,。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862420.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号