题目:给定一个元素个数为偶数的数组arr,将该数组中的元素两两配对并求和,在这些和中选出最大和最小值,请问该如何对其两两配对,才能让最大值和最小值的差为最小?
输入描述:
一共2行输入。
第一行为一个整数n,2<=n<=10000,第二行为n个数,组成目标数组,每个数大于等于2,小于等于100。中间用空格隔开。
输出描述:
输出最小的差值。
例子:输入 6
23 45 65 23 78 59
输出 16
解法思路:先用vector 的arr装下数组,然后把arr调用sort()排好序,用一个for循环将arr的首尾相加,类似于高斯求和,装到另一个vector arr2里去,这样得到的两两配对结果是方差最小的,再对arr2用sort()排序,那么arr2的*arr2.begin()就是最小值,*arr2.end()-1就是最大的值。它们相减就是最小的差值。还有一种办法是直接开arr[101]的数组,数就是对应的arr[i]的i, arr[i]的值就是存的数的个数。第二种方法也贴出代码了。
方法一:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {vector<int> arr,arr2;int n = 0;cin >> n;for (int i = 0; i < n; i++) {int temp;cin >> temp;arr.push_back(temp);}sort(arr.begin(), arr.end());for (int i = 0,j=arr.size()-1; i < arr.size(); i++) {arr2.push_back(arr[i] + arr[j - i]);}sort(arr2.begin(), arr2.end());n =  *(arr2.end() - 1)- *arr2.begin() ;cout << n;return 0;
}

方法二:

#include"stdafx.h"
#include<iostream>
#include<algorithm>
using namespace std;
int main() {int arr[101] = { 0 }, arr2[201] = { 0 };int n = 0;cin >> n;for (int i = 0; i < n; i++) {int temp;cin >> temp;arr[temp]++;}for (int i = 2 , j = 100; i < j;  ) {if (arr[i] != 0 && arr[j] != 0) {arr2[ i+j ]++;arr[i]--;arr[j]--;}else if (arr[i] != 0 && arr[j] == 0) {--j;}else if (arr[i]==0 && arr[j] !=0){++i;}else{--j;++i;}}int k = 4;int g = 200;while (1) {if (arr2[k] != 0 && arr2[g] != 0) {n = g - k;break;}else if (arr2[k] != 0 && arr2[g] == 0) {--g;}else if (arr2[k] == 0 && arr2[g] != 0) {++k;}else{--g;++k;}}cout <<n<<endl;return 0;
}

2019.4.3拼多多笔试第一题相关推荐

  1. Java算法:牛客网拼多多笔试真题算法Java版1-13题

    题号 题目 知识点 难度 通过率 PDD1 最大乘积 贪心模拟 中等 14.45%PDD2 大整数相乘 模拟 中等 27.32%PDD3 六一儿童节 贪心 中等 24.74%PDD4 迷宫寻路 模拟 ...

  2. 2021秋招拼多多笔试算法题

    1.现有一个n*m的矩阵,矩阵中每个格子都有且只有一种颜色.矩阵中共有k种颜色,每个颜色通过特定数字C(i,j)表示.设初始位置位于(1,1),每次可以向右(x+1,y)者向下(x,y+1)移动一个单 ...

  3. 20200802拼多多笔试题目

    20200802拼多多笔试题目 第一题 python代码示例 第二题 python代码 第三题 提交的版本 完善版本 双指针代码 第四题   拼爹爹的题目感觉出的还是比较有水准的,不管怎么样测试用例是 ...

  4. 字节跳动2019春招第二次笔试编程题

    字节跳动2019春招第二次笔试编程题 1.变身程序员 题目描述 输入描述 输出描述 示例 示例1 示例2 示例3 分析 参考代码 2.特征提取 题目描述 输入描述 输出描述 示例 示例1 备注 分析 ...

  5. 2019.9.1 拼多多 服务端研发-笔试(C++)

    拼多多的笔试没有选择题,直接是四道编程题,非常干脆直接,上手就是干! 优先偶数的有序TopN 题目描述: 读入一个数列和N值,返回按优先级排序的N个数,满足: (1)所有偶数优先级大于奇数 (2)同为 ...

  6. 小米答题题库_拼多多果园答题题库74(每日更新)

    135编辑器 拼多多答题题库七十四 每周我们都会做一个总和的题库: 希望大家持续关注! 您的关注就是我们的动力! "成语之乡"指的是我国哪座城市? 1.河北邯郸  2.安徽蚌埠 答 ...

  7. 我胡汉三又回来了之拼多多笔试复盘

    天朗气清,惠风和畅.一个阳光明媚的日子,王豆子终于想起了被leetcode支配的恐惧以及TA的csdn账号,又回来了. 笔记本写不下了,所以用博客记录一下. 今天复盘一下拼多多的笔试,第一个题比较简单 ...

  8. 拼多多2021高频题汇总 | 备战春招,刷这30题就够了!

    春招高峰期,九章算法特别开放了[2021春招信息情报站],搜集汇总了阿里.字节.腾讯.顺丰.百度等互联网大厂的一手春招情报,包含网申链接.招聘范围.秘密情报.春招题库等,希望帮助更多同学顺利上岸! 校 ...

  9. 下沉巨头的2019年,拼多多和趣头条谁更值得投资?

    回看2019,下沉市场依然是今年互联网行业的关键词之一.在这个稀有的增量市场,互联网巨头仍在摩拳擦掌竞争激烈的抢夺下沉市场的小镇青年.在看到下沉市场火热的背后,我们也看到以拼多多.趣头条为代表的平台在 ...

最新文章

  1. 动态规划—最长公共子序列问题 HDU-1159 Common Subsequence
  2. OpenAI解析「AI算力」:3个半月翻一倍,6年超过30万倍
  3. 开源项目JacpFX
  4. MySQL CURDATE() 函数
  5. 高中物理公式、规律汇编表
  6. 【paper】BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs
  7. 注解(一)- 基础知识与运行时注解
  8. leetcode - 226. 翻转二叉树
  9. 深度 | Google Brain研究工程师:为什么随机性对于深度学习如此重要?
  10. linux文件控制驱动程序,Linux设备驱动程序学习(6)-高级字符驱动程序操作[(3)设备文件的访问控制]...
  11. 用指针将字符串逆序输出
  12. 菜鸟程序员成长之路(七)——2020年,你奋斗了吗?
  13. 加密经济学应用的机制设计
  14. 爬虫入门经典(十六) | 一文带你爬取斗鱼主播相关信息
  15. Android实现九宫格图片控件
  16. 灵飞经3 印神无双 第十四章 印神古墓 3
  17. 水逆了一整年的王源,2020年年初能靠《大主宰》翻身吗?
  18. (FortiGate)飞塔防火墙配置AD***
  19. js实现轮播图(简单滚动轮播)
  20. LED常见失效案例及分析

热门文章

  1. 深度学习实战39-U-Net模型在医学影像识别分割上的应用技巧,以细胞核分割任务为例
  2. temps matlab,matlab插值方法PPT演示文稿
  3. table 固定特定行
  4. 【深度学习之路记录02】python代码批量修改Labelme标注的json文件(删除标签、修改标签名)
  5. 彩票软件中热温冷算法的实现情况
  6. 【最新】如何降低深度强化学习研究的计算成本(Reducing the Computational Cost of DeepRL)...
  7. 工作室课题三【三】贪吃的大嘴
  8. BeautifulSoup+pandas 爬取新浪国内新闻
  9. 心灵鸡汤 - fifth (5th)
  10. python爬取全国高校在某省的录取分数线