阿里巴巴校招一道笔试题
2020-07-25 11:51
211 查看
Description:
现在有N个盘子,第 i 个盘子放了 si 个烧饼,小明可以任意选一个数字 x,x介于 1 和 N 之间,他可以从 1 到 x之间的盘子都吃一个烧饼。如果 1 到 x 个盘子中有一个盘子没有烧饼,那么他不能选择这个 x。 假设小明胃口无限大,求小明能吃的最多的烧饼数量。
sample test case:
N = 3; nums = {2, 1, 3}; output = 4;
解释:首先小明可以吃1-3个盘子的烧饼,共计三个,吃完后小明只能吃第一个盘子的烧饼,共计四个。所以答案是4。
Solution
核心思路其实很简单:vector中每一个元素都遍历一遍,用一个min来记录当前为止都最小值,表示这个位置之后的盘子中的烧饼最多能被吃几次。答案就是min的总和。
代码如下:
int main() { int n = 3; vector<int> obj; obj.push_back(2); obj.push_back(1); obj.push_back(3); int result = 0; int min = INT32_MAX; vector<int>::iterator it; for(it = obj.begin(); it != obj.end(); ++it) { min = min < *it ? min : *it; result += min; } cout << result << endl; }
相关文章推荐
- 2014年9月14号阿里巴巴校招笔试题 一道题的JAVA实现
- 九月十月百度,迅雷,华为,阿里巴巴最新校招笔试面试六十题(11.05)
- 有多少个进程被 fork 出来了?----阿里巴巴2015校招研发在线笔试题
- 阿里巴巴2015秋季校招(客户端开发工程师岗位)在线笔试题
- 2014年9月14阿里巴巴校招笔试题-JAVA选做题
- 阿里巴巴2014校招笔试题-2013年9月14日
- 2015届阿里巴巴校招研发在线笔试题
- 由阿里巴巴一道笔试题看Java静态代码块、静态函数、动态代码块、构造函数等的执行顺序
- 阿里巴巴2014校招笔试题_时长问题
- 阿里巴巴2014校园招聘研发笔试一道JAVA附加题分析
- 九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题
- 九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题
- 多益网络2014校招的一道笔试题---左旋字符串
- 阿里巴巴校招2017前端笔试题目 -- 原生js/html5 实现一个路由
- 下面的函数哪个是系统调用而不是库函数()?----阿里巴巴2015校招研发在线笔试题
- 阿里巴巴笔试的一道综合题
- 九月百度,迅雷,华为,阿里巴巴,最新校招笔试面试十题
- 2016魅族校招的一道笔试题,将一个长度为n的数组中存放的是未排序的0到n-1,要求只能将0和其他数swap,完成数组排序
- 九月十月百度,迅雷,华为,阿里巴巴最新校招笔试面试三十题(10.18)
- 阿里巴巴2014校园招聘研发笔试一道JAVA附加题分析