MT2017笔试题
一、大富翁游戏
1、题目
大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步。求玩家走到第n步(n<=骰子最大点数且是方法的唯一入参)时,总共有多少种投骰子的方法。
输入描述:
输入包括一个整数n,(1 ≤ n ≤ 6)
输出描述:
输出一个整数,表示投骰子的方法
输入例子1:
6
输出例子1:
32
2、思路
递归思想: 在走了n步时,投骰子的方法f(n)等于
在走了n-1步时投骰子的方法f(n-1)+投一个1
在走了n-2步时投骰子的方法f(n-2)+投一个2
在走了n-3步时投骰子的方法f(n-3)+投一个3
...
在走了1步时投骰子的方法f(1)+投一个n-1
直接投n
所以f(n)=f(n-1)+f(n-2)+f(n-3)...+f(1)+1=2^(n-1)
3、代码
import java.util.Scanner;
/*
考察递归 f(n)=f(n-1)+f(n-2)+......+f(1)+1
*/ public class daFuWeng {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
int n = in.nextInt();
int result = method(n);
System.out.println(result);
}
in.close();
} private static int method(int m) {
int sum = 0;
if (m == 1) {
sum = 1;
} else {
for(int i=1;i<m;i++){
sum += method(m-i);
}
sum=sum+1;
}
return sum;
}
}
二、 拼凑钱币
1、题目
给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。
输入描述:
输入包括一个整数n(1 ≤ n ≤ 10000)
输出描述:
输出一个整数,表示不同的组合方案数
输入例子1:
1
输出例子1:
1
2、思路
可以用动态规划的方法来求解此问题。动态规划的基本思想就是将待求解问题分解为若干子问题,,先求解这些子问题并将结果保存起来,若在求解较大的问题时用到较小子问题的结果,可以直接取用,从而免去重复计算。

3、代码
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int amount = sc.nextInt();// 钱数
int[] price = {1, 5, 10, 20, 50, 100};// 货币面值
// fun(price, amount);
fun1(price, amount);
}
}
public static void fun1(int[] price, int amount) {
long[][] dp = new long[price.length][amount + 1];
//初始化
for (int i = 0; i < amount + 1; i++) {
dp[0][i] = 1;
}
for (int i = 0; i < price.length; i++) {
dp[i][0] = 1;
}
//计算
for (int i = 1; i < price.length; i++) {
for (int j = 1; j < amount + 1; j++) {
int m = j / price[i];
for (int k = 0; k <= m; k++) {
dp[i][j] += dp[i - 1][j - k * price[i]];
}
}
}
//输出不同的组合方案数
System.out.println(dp[price.length - 1][amount]);
}
}
三、最大矩形面积
1、题目
给定一组非负整数组成的数组h,代表一组柱状图的高度,其中每个柱子的宽度都为1。 在这组柱状图中找到能组成的最大矩形的面积(如图所示)。 入参h为一个整型数组,代表每个柱子的高度,返回面积的值。

输入描述:
输入包括两行,第一行包含一个整数n(1 ≤ n ≤ 10000)
第二行包括n个整数,表示h数组中的每个值,h_i(1 ≤ h_i ≤ 1,000,000)
输出描述:
输出一个整数,表示最大的矩阵面积。
输入例子1:
6
2 1 5 6 2 3
输出例子1:
10
2、思路
详见代码部分
3、 代码
import java.util.*;
public class theMaxArea{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
//输入数组长度
int n = sc.nextInt();
//输入数组
int[] height = new int[n];
for(int i = 0; i < n; i++){
height[i] = sc.nextInt();
}
int MaxArea = 0; //存储最大面积
int minH = 0; //存储最小高度
for(int i = 0; i < n; i++){
minH = height[i];
for (int j = i; j < n; j++){
minH = Math.min(minH, height[j]); //找出i之后的最小高度
MaxArea = Math.max(MaxArea, minH * (j - i + 1)); //计算最小高度为高度的最大面积值
}
} System.out.println(MaxArea);
}
sc.close();
}
}
四、 最长公共连续子串
1、题目
给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。
输入描述:
输入为两行字符串(可能包含空格),长度均小于等于50.
输出描述:
输出为一个整数,表示最长公共连续子串的长度。
输入例子1:
abcde
abgde
输出例子1:
2
2、思路
可以用动态规划的方法来求解此问题。详细分析过程见 http://www.cnblogs.com/en-heng/p/3963803.html
3、代码
import java.util.Scanner;
public class theMaxSubLength {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str1 = sc.nextLine();
String str2 = sc.nextLine();
int max = lcs(str1, str2);
System.out.println(max);
}
sc.close();
}
public static int lcs(String str1, String str2) {
int len1 = str1.length();
int len2 = str2.length();
int result = 0; //记录最长公共子串长度
int c[][] = new int[len1 + 1][len2 + 1];
for (int i = 0; i <= len1; i++) {
for (int j = 0; j <= len2; j++) {
if (i == 0 || j == 0) {
c[i][j] = 0;
} else if (str1.charAt(i - 1) == str2.charAt(j - 1)) {
c[i][j] = c[i - 1][j - 1] + 1;
result = Math.max(c[i][j], result);
} else {
c[i][j] = 0;
}
}
}
return result;
}
}
-------------------------------
参考链接:
2、牛客网
MT2017笔试题的更多相关文章
- 对Thoughtworks的有趣笔试题实践
记得2014年在网上看到Thoughtworks的一道笔试题,当时觉得挺有意思,但是没动手去写.这几天又在网上看到了,于是我抽了一点时间写了下,我把程序运行的结果跟网上的答案对了一下,应该是对的,但是 ...
- 从阿里巴巴笔试题看Java加载顺序
一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...
- 我设计的ASP.NET笔试题,你会多少呢
本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...
- C#经典笔试题-获取字符串中相同的字符以及其个数
public Dictionary<char,int> GetStrSameAs(string str){ //将字符串转换成一个字符数组. char[] charArray=str.To ...
- flhs笔试题-回家上机实践
这是最近参加的一个公司的笔试题,回家上机写了下代码,希望对有需要的小伙伴有用,简单实现字符串和数组在指定位置的插入: package org.flhs; import com.google.commo ...
- 也许你需要点实用的-Web前端笔试题
之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...
- [c#基础]关于try...catch最常见的笔试题
引言 在翻看之前总结的常见面试题中,关于try...catch异常处理的还是蛮多了,今天看到这个面试题,也就重新学习一下. try..catch语法 try-catch语句由一个try块后跟一个或多个 ...
- js作用域之常见笔试题,运行结果题
笔试题中经常有运行结果题,而大多体型都是围绕作用域展开,下面总结了几种相关的题: 外层的变量函数内部可以找到,函数内部的变量(局部变量)外层找不到. function aaa() { var a = ...
- 【Android】一道Android OpenGL笔试题
一道Android OpenGL笔试题 SkySeraph May. 5th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sky ...
随机推荐
- 003 css总结
1.题目 有哪项方式可以对一个DOM设置它的CSS样式? CSS都有哪些选择器? CSS选择器的优先级是怎么样定义的? CSS中可以通过哪些属性定义,使得一个DOM元素不显示在浏览器可视范围内? 超链 ...
- in 索引失效的问题
先安利一篇博文MySQL的or/in/union与索引优化 简单的in查询 索引失效: 步骤 1.检查建立索引没有 order_status 字段为普通索引的tinyint类型 2.检查是否使用了使索 ...
- 远程服务器数据交互技术:rsync,scp,mysqldump
远程服务器间数据文件交互,可用技术:rsync,scp 速度:rsync是非加密传输,比scp快 安全:scp为加密传输 备份体量:rsync只更新差异部分,可以做增量和全量备份.scp为全量 传输方 ...
- 为什么hexo预览功能总是间歇性失效?
个人主题:yilia 有的文章可以正常截断,有的文章不行. 开始我以为这是hexo的一个小bug,但是后来通过查阅GitHub和知乎等网站发现这完全是由于我自己的粗心造成的…手动滑稽 hexo pag ...
- vue 调用摄像头拍照以及获取相片本地路径(实测有效)
在学习这个的时候有一点前提:这是针对手机功能的,所以最重要的是要用手机进行实时调试 包含图片的增加和删除功能 <template> <div> <!--照片区域--> ...
- 953.Verifying an Alien Dictionary(Map)
In an alien language, surprisingly they also use english lowercase letters, but possibly in a differ ...
- TCP(控制传输协议)详解
1.传输层概述 在OSI参考模型中,网络层是面向通信的最高层但同时也是面向用户程序的最底层. 传输层的主要作用: 复用:在发送端,多个应用程序公用一个传输层: 分用:在接收端,传输层把从网络层接收到的 ...
- js函数柯里化,实现bind
1.柯里化: 把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术. 举个栗子: 一个计算两数之和的函数,需要传递两个参数,柯里化 ...
- 记使用aliyun-log-logback-appender 报错no applicable action for [encoder], current ElementPath is [[configuration][appender][encoder]]
依赖: <dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>aliy ...
- 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图
先上结果: 之前 在公司业务中用过java+Selenium+ChromeDriver ,使用起来非常顺手,可以完美模拟真实的用户浏览行为.最近休息的时候想用C#也试一下,于是有了本文. 实现原理一样 ...