滴滴2016.09.06校招 在线笔试 - 2道编程题

1、连续子数组的最大和

题目描述

一个数组有N个元素,求连续子数组的最大和。例如:[-1,2,1],和最大的连续子数组为[2,1],其和为3。

输入描述
输入为两行。
第一行一个整数n (1 <= n <= 100000), 表示一共有n个元素,第二行为n个数,每个元素每个整数都在32位int范围内。以空格分隔。
输出描述
所有连续子数组中和最大的值。
输入例子
3
-1 2 1
输出例子
3

分析:

参考解答:

#include <iostream>
#include <algorithm>
using namespace std;int main(){int n;scanf("%d",&n);int sum = 0, mx = -99999999;    // 初值的选取需注意, 不能取INT_MINfor(int j = 0; j < n; j++){int temp;scanf("%d",&temp);if(sum < 0) sum = temp;else sum += temp;mx = max(sum, mx);}printf("%d\n",mx);
}

2、餐馆

题目描述

某餐馆有n张桌子,每张桌子有一个参数:a可容纳的最大人数;有m批客人,每批客人有两个参数:b人数、c预计消费金额。在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大。

输入描述
输入包括m+2行。
第一行包括2个整数n(1<=n<=50000),m(1<=m<=50000);
第二行为n个参数a,即每个桌子可容纳的最大人数,以空格分隔,范围均在32位int范围内;
接下来m行,每行两个参数b和c,分别表示第i批客人的人数和预计消费金额,以空格分隔,范围均在32位int范围内。
输出描述
输出一个整数,表示最大的总预计消费金额。
输入例子
3 5
2 4 2
1 3
3 5
3 7
5 9
1 10
输出例子
20

分析:

贪心法。先把顾客进行消费金额降序,人数升序排序。 然后枚举每波顾客去二分当前最适合的 桌子的容量,维护答案即可,注意答案可能爆int。这题裸暴力过不了。不能拆桌。时间复杂度:O(mlogm + nlogm)

注意: 结果需要使用long long(相应printf的格式控制为%lld), 如果忘了用long long, 样例只会通过50%!

参考code:

#include <iostream>
#include <map>
#include <vector>
#include <map>using namespace std;struct node{int b,c;
};
int comp(node x, node y){if (x.c == y.c) {return x.b < y.b;} return x.c > y.c;
}
int n,m;
long long ans;
std::vector<node> v;
std::multimap<int, int> mp;
int main(){scanf("%d%d",&n,&m);for(int i = 0; i < n; i++){int x; scanf("%d",&x);mp.insert(std::pair<int, int>(x, 1));}for(int i = 0; i < m; i++){int x, y;scanf("%d%d",&x,&y);node tmp;tmp.b = x, tmp.c = y;v.push_back(tmp);}sort(v.begin(),v.end(),comp);for(int i = 0; i < m; i++){std::map<int,int>::iterator it = mp.lower_bound(v[i].b);if (it != mp.end()) {mp.erase(it);ans += v[i].c;}}printf("%lld\n",ans);
}

滴滴2016.09.06校招 在线笔试 - 2道编程题相关推荐

  1. 【滴滴出行】 2019校招在线笔试

    第一题:链式调用 第二题:魔法权杖

  2. 【小米集团】2019校招在线考试-算法试卷编程题

    1. 小米大礼包 题目描述: 小米之家是成人糖果店.里面有很多便宜.好用.好玩的产品.中秋节快到了,小米之家想给米粉们准备一些固定金额大礼包.对于给定的一个金额,需要判断能不能用不同种产品(一种产品在 ...

  3. 度小满笔试两道编程题2020/09/20

    备战秋招面试 微信搜索公众号[TechGuide]关注更多新鲜好文和互联网大厂的笔经面经. 作者@TechGuide 点赞再看,养成习惯,您动动手指对原创作者意义非凡

  4. 2020-09-13 滴滴-2021校招在线笔试-DE数据开发试卷

    2020-09-13 滴滴-2021校招在线笔试-DE数据开发试卷 1. D星群岛 题目: D星群岛由n个小岛组成.为了加强小岛居民之间的交流,头目决定启动一个造桥工程,将全部n个岛连接到一起.由于受 ...

  5. 2016恒生电子秋招笔试两道算法题

    2016恒生电子笔试两道算法题 1.求出1到100之间所有素数,要求时间复杂度最优. 我的最优解决方案是吧素数一个个放入一个素数数组里面(初始吧2放进去),后面的数只要判断是否能够整除这个素数数组里面 ...

  6. 亚马逊2015校招在线笔试1

    截图有重叠,大家将就一下.本人没有参加在线笔试,主要跟大家分享一下思路. 题目的意思就是找到从起始节点开始的定长路径,路径必须包含一个必须要到达的节点.返回所有的路径数,如果不存在这样的路径,则返回0 ...

  7. 网易笔试编程题java_2017年网易校招笔试JAVA研发编程题

    为什么80%的码农都做不了架构师?>>> 尝试挑战了下网易2017校招的笔试编程题,共三题,AC第一题,第二题思考了很久勉强用一种low逼的方式完成,第三题没有完成,希望路过的ACM ...

  8. 用友2023届秋招Java笔试-S2卷-编程题详解

    用友2023届秋招Java笔试-S2卷 其他的选择和多选不允许跳出 另外还有一道关于数据库查询的题: 有两个表,一个学生表,一个成绩表包含学生各个科目的成绩,学生表根据学生id和成绩表关联,要求的是通 ...

  9. 贝壳找房 2019校招 研发类试卷C++ 编程题 2018.08.19

    贝壳找房 2019校招 研发类试卷编程题 C++ 2018.08.19 遍历的同时求出最小值min 和 村庄高度和sum,sum-min即可 #include <iostream>usin ...

最新文章

  1. ImportError: Could not import backend for traitsui. Make sure you have a suitable UI toolkit like
  2. 每日一皮:这个不要轻易尝试,执行有生命危险
  3. mysql5.6视频_网易视频云:MySQL 5.6 5.7最优配置文件模板
  4. 40 FI配置-财务会计-固定资产-组织结构-创建屏幕格式规则
  5. mac自带python升级_mac升级Python失败?
  6. apache 设置缓存
  7. Hive 中日志的存放位置
  8. [MCSM]随机搜索和EM算法
  9. java用ajax实现多级菜单,ajax + java + jsp 做的二级菜单联动(全)
  10. 程序员10大修炼之道,学会这些月入百万不是梦
  11. 2021数学建模美赛:赛前总动员
  12. java深入理解深拷贝和浅拷贝的区别 如何实现深拷贝和浅拷贝
  13. 《软件开发工具》(第二章)
  14. 数数小绵羊(C++)
  15. html依次显示选中的值,html 快速布局 - osc_pw143nru的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. Spring Cloud Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)
  17. XP系统outlook选什么服务器,xp系统安装outlook的修复教程
  18. win10系统cmd窗口设置定时自动关机及取消命令
  19. html上上上级目录,html如何表示上级目录
  20. Zabbix 3.2 课程精讲-庄博-专题视频课程

热门文章

  1. css自动填满父级剩余宽度
  2. WindTerm 开源的高性能终端模拟器 最酷
  3. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十八)ES6.2.2 增删改查基本操作
  4. 虚拟机root忘记密码怎么办?
  5. h5 调用后置摄像头
  6. 使用AD18 敷铜时,不显示敷铜的板框,
  7. Manjaro远程连接报请安装RDP协议插件
  8. OSS与业务场景学习
  9. 福禄克DSX2-5000、DSX2-8000模块如何找到校准到期日期?
  10. Topaz Sharpen AI for Mac(图片智能清晰锐化软件)