阿里巴巴2017校招C++岗位在线编程题-求集合D的最大值,最小值和元素个数三者之和
题目:输入一组正整数为集合N;从N中任意取两个数求和得到集合A;从N任意取两个数求差的绝对值得到集合B;从集合A,B中各取一个数得到集合D;集合D中最大值d1,最小值d2,元素个数为ds,求d1+d2+ds;
思路:简单,按题目顺序来即可,注意集合元素的去重和排序即可。这题考的时候我有点粗心,一个循环遍历中少加了1居然一直没看到,然后我用来做题的电脑上居然没有gdb,没法调试,光从眼睛看居然没有发现该错误,明明代码量这么少(捂脸笑哭)。
#include <iostream>
#include <vector>
#include <numeric>
#include <limits>
#include <cmath>
#include <algorithm>
using namespace std;
// 请完成下面这个函数,实现题目要求的功能
// 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^
int result(const vector <int>& inputs) {vector <int> a;vector <int> b;vector <int> d;int len = inputs.size();int resultNum = 0;for (int i = 0; i < len; i++){for (int j = i + 1; j < len; j++)//就在这个地方少加了1,居然一直没发现{int calTmp = inputs[i] + inputs[j];a.push_back(calTmp);}}for (int i = 0; i < len; i++){for (int j = i + 1; j < len; j++){int calTmp = abs(inputs[i] - inputs[j]);b.push_back(calTmp);}}sort(a.begin(),a.end());a.erase(unique(a.begin(), a.end()), a.end());sort(b.begin(),b.end());b.erase(unique(b.begin(), b.end()), b.end());int aLen = a.size();int bLen = b.size();for (int i = 0; i < aLen; i++){for (int j = 0; j < bLen; j++){int calTmp = abs(a[i] - b[j]);d.push_back(calTmp);}}sort(d.begin(),d.end());d.erase(unique(d.begin(), d.end()), d.end());sort(d.begin(),d.end());resultNum = d.front() + d.back() + d.size();return resultNum;
}int main() {int size = 0;cin >> size;cin.ignore (numeric_limits<std::streamsize>::max(), '\n');vector<int> points;for(size_t i=0; i<size; ++i) {int item;cin >> item;cin.ignore (numeric_limits<std::streamsize>::max(), '\n');points.push_back(item);}int res = result(points);cout << res << endl;return 0;
}
阿里巴巴2017校招C++岗位在线编程题-求集合D的最大值,最小值和元素个数三者之和相关推荐
- 小红书校招笔试编程题 求表达式 f(n)结果末尾0的个数
时间限制:1秒 空间限制:32768K 输入一个自然数n,求表达式 f(n) = 1!2!3!.....n! 的结果末尾有几个连续的0? 输入描述: 自然数n 输出描述: f(n)末尾连续的0的个数 ...
- java在线编程题_阿里笔试题(2017在线编程题)-- 数串分组 --Java实现
看到有人写了阿里的面试题,心里痒痒,好久 没搞过这些了,写着实现一下 题目 2017年3月阿里在线编程题(实习内推) 给定一串数字 判断是否存在这三个元素,它们将数字串分为四个子串,其中每个子串的数字 ...
- 阿里笔试题(2017在线编程题)-- 数串分组 --Java实现
看到有人写了阿里的面试题,心里痒痒,好久 没搞过这些了,写着实现一下 题目 2017年3月阿里在线编程题(实习内推) 给定一串数字 判断是否存在这三个元素,它们将数字串分为四个子串,其中每个子串的数字 ...
- 2020哔哩哔哩校招后端开发笔试编程题总结
2020哔哩哔哩校招后端开发笔试编程题总结 1.给定一个正整数N,试求有多少组连续正整数满足所有数字之和为N? (1 <= N <= 10 ^ 9) 暴力求解法: package Day4 ...
- 阿里算法工程师在线编程题
第一次投实习,阿里的在线编程题,只有一道,半个小时完成. 这道题主要要想到有递推公式 当N>=3时A(N)=M*(M-1)^(N-1)-A(N-1) N=2时,初值为M(M-1),因为只有两块, ...
- 平安科技2020校招技术岗部分编程题
题目源自:平安科技2020校招技术岗部分编程题汇总 1. 字符串异构同质判定 请编码实现一个命令行工具,判定两个指定的字符串是否异构同质:异构同质的定义为:一个字符串的字符重新排列后,能变成另一个字符 ...
- pat编程语言_浙江大学在线pat题库集合
[实例简介] 浙江大学在线pat题库集合 [实例截图] [核心代码] dfe822fa-a075-4fde-b840-afc825ee6fc6 └── test ├── 00-自测2. 素数对猜想 ( ...
- 编程题——求最小公倍数
编程题--求最小公倍数 题目描述: 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数. 输入描述: 输入两个正整数A和B. 输出描述: 输出 ...
- 2017字节跳动秋招编程题-头条校招
题目描述 头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队,每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来,在选题之前,我们对题目进行了盲审,并定出 ...
最新文章
- raid5数据恢复方法,服务器磁盘阵列数据恢复成功案例
- 视频: 猫和老鼠真实版
- UIView及其分类的属性方法定义
- 基于算法的建模---分形几何方法
- 内容 AI:建立统一的跨媒体多模态内容理解内核
- 用java连接Excel和SQLite3,实现从excel文件读取数据并将其存入SQLite3数据库中
- Spring+Spring Security+JSTL实现的表单登陆的例子
- 组件开发之Asp.net服务器控件Collection[集合]属性的设计时支持--编辑、保存
- linux中id命令的功能,Linux id命令参数及用法详解
- 大数据学习总结(5)参考elk技术架构
- 联想Y9000P-2022款踩坑指南 加装固态和内存 win10系统安装
- [乡土民间故事_徐苟三传奇]第四一回_放牛娃巧娶富家女
- matlab二项式分布,C++ binomial_distribution二项式分布随机数用法解析
- 4. PyQt5的主要模块
- windows下linux子系统(Ubuntu)配置(基础配置+zsh)
- 新加坡金融科技节 | 蚂蚁金服CTO程立:面向全球开放,与合作伙伴共赢
- 输入矩形的长和宽。计算其面积和周长
- 使用 easypoi 导出 excel 实现动态列,完美解决!
- Rust FFI 编程 - Bindgen 工具介绍
- FAT32文件系统转NTFS文件系统
热门文章
- 22061周市场回顾
- vue中v-for的用法
- 企业邮箱退信提示:“550 5.1.1 User unknown.”
- Linux命令学习笔记(一)目录操作
- 【复杂网络建模】——Python可视化重要节点识别(PageRank算法)
- 2022浙江省计算机三级网络及安全技术考试自学资料(1)(更新于2.28)
- 切片器可以设置日期格式?_Excel切片器,原来有这么多厉害的用法
- Http长连接、短连接、持久连接这三个概念的分析总结
- 面部识别法案正式通过?微软总裁赞不绝口——华盛顿州重大突破!
- jQuery基础文档(持续更新)