美团点评2017秋招笔试编程题

1, 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步。求玩家走到第n步(n<=骰子最大点数且是方法的唯一入参)时,总共有多少种投骰子的方法。

题解:

  写出前面的几个, 1 -> 1;   2 -> 2 ;  3 -> 4;   4 -> 8; 5 -> 16; 6 -> 32; 可以得到是 二的 n-1 次幂。

#include <cstdio>int main(){int n, ans;while(scanf("%d", &n) != EOF){if(n <= 0){printf("%d\n", 0);continue;}ans = 1;for(int i=1; i<n; ++i){ans *= 2;}printf("%d\n", ans);}return 0;
}

  

2, 给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。

题解:

  多一个 bill 选项, 则可以从 该bill 值的 0,1,2 ... j/bill , 这么多种集合。dp[i][j] = dp[i][j] + dp[i-1][j - k*bill[i] ];

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
const int MAXN = 10000 + 10;
const int BILL[6] = {1, 5, 10, 20, 50, 100}; int n, dp[6][MAXN]; void init(){memset(dp, 0, sizeof(dp)); for(int i=0; i<MAXN; ++i){dp[0][i] = 1; }for(int i=1; i<6; ++i){for(int j=1; j<MAXN; ++j){for(int k=0; k*BILL[i] <= j; ++k){dp[i][j] += dp[i-1][j - k*BILL[i]]; }}}
}int main(){freopen("in.txt", "r", stdin); init(); while(scanf("%d", &n) != EOF){printf("%d\n", dp[5][n] );}return 0;
}

  

3, 给定一组非负整数组成的数组h,代表一组柱状图的高度,其中每个柱子的宽度都为1。 在这组柱状图中找到能组成的最大矩形的面积(如图所示)。 入参h为一个整型数组,代表每个柱子的高度,返回面积的值。

题解:

  经典的最大矩形问题。使用 left and right array, 分别记录每一个pt可以扩展的最大距离。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
const int MAXN = 10000 + 10;int n, tmp, ans, num[MAXN], lft[MAXN], rgt[MAXN];int main(){while(scanf("%d", &n) != EOF){for(int i=1; i<=n; ++i){scanf("%d", &num[i]);}num[0] = num[n+1] = 0;for(int i=1; i<=n; ++i){tmp = i - 1;while(num[i] <= num[tmp]){tmp = lft[tmp] - 1;}lft[i] = tmp + 1;}for(int i=n; i>=1; --i){tmp = i + 1;while(num[i] <= num[tmp]){tmp = rgt[tmp] + 1;}rgt[i] = tmp - 1;}ans = 0;for(int i=1; i<=n; ++i){ans = max(ans, num[i]*(rgt[i] - lft[i] + 1));}printf("%d\n", ans );}return 0;
}

  

4, 给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。

题解:

  使用 动态规划。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
const int MAXN = 100 + 10;char ch1[MAXN], ch2[MAXN];int dp[MAXN][MAXN];int get_line(char *line, int max_size){int c, len = 0;while( (c = getchar()) != EOF && len < max_size ){line[len++] = c;if(c == '\n'){break;}}line[len] = '\0';return (len - 1);
}int main(){ int ans = 0;int len1 = get_line(ch1, MAXN);int len2 = get_line(ch2, MAXN);memset(dp, 0, sizeof(dp));for(int i=0; i<len1; ++i){for(int j=0; j<len2; ++j){if(ch1[i] == ch2[j]){dp[i+1][j+1] = max(dp[i+1][j+1], dp[i][j]+1);ans = max(ans, dp[i+1][j+1]);}}}printf("%d\n", ans);return 0;
}

  

转载于:https://www.cnblogs.com/zhang-yd/p/7091567.html

美团点评2017秋招笔试编程题相关推荐

  1. 美团点评2017秋招笔试真题-安全工程师卷

    1.Webview远程代码执行漏洞曾经危害甚广,Android4.3以下的版本仍可能受此漏洞影响.webview漏洞除用户自己注册的接口外,Android系统本身也存在一些隐藏接口,下面哪一个不属于系 ...

  2. 腾讯2017秋招笔试编程题--游戏任务标记

    游戏里面有很多各式各样的任务,其中有一种任务玩家只能做一次,这类任务一共有1024个,任务ID范围[1,1024].请用32个unsigned int类型来记录着1024个任务是否已经完成.初始状态都 ...

  3. 滴滴出行2017秋招笔试真题-编程题汇总_Java实现

    滴滴出行2017秋招笔试真题-编程题汇总_Java实现 注:有的题参考别人的思路,用我最容易理解的代码编的程序,所以可以不能最优的解法,后续我会进行更新,只是一个思路,我的笔记而已,所以不喜勿喷~~~ ...

  4. 【笔试题】京东2017秋招笔试真题

    笔试题 京东2017秋招笔试真题 1.进制均值 时间限制 C/C++语言 1000MS;其他语言 3000MS 内存限制 C/C++语言 65536KB;其他语言 589824KB 题目描述 尽管是一 ...

  5. 【新华三】H3C 秋招 笔试编程题

    点击上方蓝字关注我,我们一起学编程 欢迎小伙伴们分享.转载.私信.赞赏. H3C 笔试编程题. 微信搜索:编程笔记本 微信搜索:编程笔记本 微信搜索:编程笔记本 1. 星期匹配 题目描述: 输入一个字 ...

  6. [编程题] 大富翁游戏(美团点评2017秋招)

    [编程题] 大富翁游戏 时间限制:1秒 空间限制:32768K 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步.求玩家走到第n步(n ...

  7. 【滴滴出行】2017秋招笔试真题(智力题)

    题目链接 然鹅我智力有限qwq而且这种题真的做了一部分就不想动了... 1.有50家人家,每家一条狗.有一天警察通知,50条狗当中有病狗,行为和正常狗不一样.每人只能通过观察别人家的狗来判断自己家的狗 ...

  8. Java——快手2020校园招聘秋招笔试--[编程题]运动会

    题目: 一年一度的快手运动会又要开始了,同学们终于有一天可以离开鼠标键盘显示器,全身心的投入到各种体育项目中.UED设计师小红虽然没有参加体育项目,但她的责任重大,因为她是拉拉队的队长,她需要在每个项 ...

  9. 滴滴出行模拟系统C语言,【滴滴出行】2017秋招笔试真题(智力题)

    然鹅我智力有限qwq而且这种题真的做了一部分就不想动了... 1.有50家人家,每家一条狗.有一天警察通知,50条狗当中有病狗,行为和正常狗不一样.每人只能通过观察别人家的狗来判断自己家的狗是否生病, ...

最新文章

  1. 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 反汇编二进制机器码 | 打印反汇编数据 )
  2. 优化SQL步骤—— explain分析执行计划 (explain 之 id)
  3. ubuntu下tesseract 4.0安装及参数使用
  4. Matlab---傅里叶变换---通俗理解(二)
  5. wordpress漏洞_用软件工具扫描WordPress / Shopify主题恶意代码以及漏洞分析相关工具...
  6. 事件总线(Event Bus)知多少
  7. 【Pytorch神经网络实战案例】17 带W散度的WGAN-div模型生成Fashon-MNST模拟数据
  8. selenium python下载_使用Selenium、Chrome和Python下载PDF
  9. java 开发平台idea_JAVA开发平台intellij idea使用教程:有哪些方法可以实现自动导入...
  10. JavaTPoint Java 中文教程【翻译完成】
  11. HP OSPF 实验(多区域)
  12. 兼具颜值与智慧 华为Mate 10 Pro体验图赏
  13. linux的使用 --- 安装git
  14. python内嵌浏览器_内嵌web浏览器
  15. 爬取外网数据(twitter、facebook)-易数云可视化爬虫软件
  16. 计算机中丢失d3dx11 43.dll,电脑为何玩了游戏都有什么丢失d3dx11_34.dll
  17. 日记 [2007年11月19日]...
  18. sql语句练习题(mysql版)
  19. win10找回BitLocker密钥的方法
  20. Oracle重建控制文件

热门文章

  1. [深度学习-实践]人脸识别的例子-Tensorflow2.x Keras
  2. mysql查询全年星期_数据库查询显示一年中所有的周一到周五的数据
  3. 为什么两个controller的session的id不一样_我,为什么会离婚?我为什么离婚?
  4. python中sklearn中的Imputer模块改动
  5. 吴恩达深度学习 —— 2.16 关于python/numpy向量的说明
  6. CS224n-week1-课程导学
  7. 图像傅里叶变换的频率怎么理解?【转载】
  8. android系统存储路径在哪里,Android 手机存储目录
  9. 波兰表达式(前序表达式)的计算(栈)
  10. Unity MegaFiers 顶点动画