拼多多java后台笔试题目总结(20180830)
1、回合攻击问题

package com.hone.pdd; import java.util.Scanner; /**
* 题目:模拟一个游戏场景,两种伤害,一种正常伤害,一种是先蓄力(也算一个回合),在伤害,问:最多需要多少个回合敌人就会打倒?
* 思路:-主要区分bufferedAttach和normalAttach之间的大小,注意是两倍之间的大小区别。
* @author Xia
*
*/
public class Test1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int hp = Integer.parseInt(in.nextLine());
int normalA = Integer.parseInt(in.nextLine());
int bufferedA = Integer.parseInt(in.nextLine());
int step = 0; // 回合数
if (bufferedA > normalA * 2) {
step = hp/bufferedA;
step = step * 2;
//计算利用聚力之后的两个回合的剩余血量
hp = hp - bufferedA * step/2;
//如果剩余血量不等于0,并且剩余血量小于正常操作的消耗血量
if (hp != 0) {
if (hp <= normalA)
step++;
else
step += 2;
}
}else {
step = hp/normalA;
if (hp % normalA != 0 )
step++;
}
System.out.println(step);
}
}
Test2

package com.hone.pdd; import java.util.Scanner; /**
* 利用一个二维数组来模拟整个的棋盘掉落情况。
* @author Xia
*
*/
public class Test2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
char[][] samples = new char[12][12]; //定义一个二维数组来表示棋盘
for (int i = 0; i < n; i++) {
samples[i] = in.next().toCharArray();
} //用一个二重的for循环来控制,但是外层的循环是以列为单位,遍历内部的行单元元素
for (int j = 0; j < m; j++) { //列
for (int i = n-1; i >= 0; i--) { //行
if (samples[i][j] == '.')
continue;
if (samples[i][j] == 'x')
continue;
int k = i;
while (k < n) {
samples[k][j] = '.';
k++;
if (k < n&&samples[k][j]!='.') {
samples[k-1][j] = 'o';
break;
}
}
} } for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.printf("%c",samples[i][j]);
}
System.out.println();
} }
}
Test3

实际上求得是小数的循环结。
package com.hone.pdd; import java.util.HashMap;
import java.util.Map;
import java.util.Scanner; /**
* 分类:1:可以整除的数
* 2:可以除尽的数(和第一种有重合)
* 3:无限循环小数
* 思路:首先可以在循环的外部做一次除法得到一个余数。
* 其后在for循环中的得到的余数一定是小数点后面的数。
* 利用map来存储小数点之后的数出现的位置。
* 无限循环小数出现的条件(余数出现重复)
* @author Xia
*
*/
public class Test3 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
//用map来存储小数点后面的数,及该数在小数点后面位置。
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
a %= b; //固定把小数点后一位定为0位
for (int i = 0;; i++) {
int x = a % b;
if (x == 0) {
System.out.println(i + " 0");
break;
}
Integer t = map.get(x);
if (t != null) {
System.out.printf("%d %d\n", t, i - t);
break;
}
map.put(x, i);
a = x * 10;
} }
}
Test4



这道题个人没有理解,是参考考试完之后别人的答案。
package com.hone.pdd; import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet; public class Test4 {
// n 表示单词的个数 m表示单词的长度
static int n;
static int m;
static List<Set<Character>> b;
static Set<String> st;
static boolean flag = false; public static void main(String[] args) {
Scanner in = new Scanner(System.in);
n = in.nextInt();
m = in.nextInt();
in.nextLine();
String[] s = new String[n];
st = new TreeSet<>();
for (int i = 0; i < n; i++) {
s[i] = in.nextLine();
st.add(s[i]);
} b = new ArrayList<>();
for (int i = 0; i < m; i++) {
b.add(new TreeSet<>());
} for (int j = 0; j < m; j++) {
for (int i = 0; i < n; i++) {
b.get(j).add(s[i].charAt(j));
}
} // 深度优先搜索
dfs(0, new StringBuilder()); } private static void dfs(int k, StringBuilder sb) {
if (flag)
return; if (k == m) {
if (!st.contains(sb.toString())) {
System.out.println(sb);
flag = true;
}
return;
}
//lambda表达式
b.get(k).forEach(character -> {
StringBuilder ssb = new StringBuilder(sb);
ssb.append(character);
dfs(k + 1, ssb);
});
}
}
拼多多java后台笔试题目总结(20180830)的更多相关文章
- 2019 拼多多java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.拼多多等公司offer,岗位是Java后端开发,最终选择去了拼多多. 面试了很多家公司,感觉大部分公司考察的点都差 ...
- 最新 拼多多java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.拼多多等10家互联网公司的校招Offer,因为某些自身原因最终选择了拼多多.6.7月主要是做系统复习.项目复盘.LeetCo ...
- 拼多多商品id怎么查看 拼多多店铺ID怎样看
网上开店平台有很多编号.id等可以区分商品和店铺的标志,拼多多有店铺id也有商品id,这是两个不同的概念,店铺id进入到拼多多店铺即可查询,拼多多商品id怎么查看 拼多多店铺ID怎样看,那么拼多多商品 ...
- 拼多多后台开发面试真题:如何用Redis统计独立用户访问量
众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过1 ...
- 拼多多、饿了么、蚂蚁金服Java面试题大集合
自己当初找工作时参加过众多一线互联网公司的Java研发面试,这段时间处于寒冬,然而前几天跳槽找工作,两天面了3家,已经拿了两个offer,觉得可以和大家分享下: 下面为拼多多.饿了么.蚂蚁金服.哈啰出 ...
- Java对接拼多多开放平台API(加密上云等全流程)
前言 本文为[小小赫下士 blog]原创,搬运请保留本段,或请在醒目位置设置原文地址和原作者. 作者:小小赫下士 原文地址:Java对接拼多多开放平台API(加密上云等全流程) 本文章为企业ERP(I ...
- 一个IP可以登几个拼多多后台 拼多多如何推广营销
想要在拼多多上开双店?担心一根网线会引起IP冲突?那么一根网线可以登几个拼多多后台呢?有数据显示,挂双店是没有问题的,甚至可以多开.那么解决了一根网线的事情,要怎么对自己的店铺进行营销推广呢?下面是小 ...
- 3年Java开发10面阿里、京东、拼多多
拼多多 地点:2号线娄山关路地铁站(金虹桥国际中心) 环境:新的写字楼,环境很好,有种高大上的感觉.大厅进入后需要登记,然后进闸机.电梯是需要刷卡才能使用的.会议室都是用城市名称命名,例如杭州.香港等 ...
- 非科班双非本科投的337家Java后台(励志)
考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰” 前言 文章出自h ...
随机推荐
- 【代码笔记】iOS-GCD用法
代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // ...
- Ubuntu OpenJDK + Tomcat7 的安装
jdk1.7.0安装首先安装openjdk,安装命令如下图. 安装好之后检查jdk文件路径,如下图. 建立链接(ls),如下图. 成功之后,配置环境变量,并重新运行一下,如下图. 环境变量在文件最后面 ...
- Docker for Windows(一)下载与安装
一.下载Docker for Windows 下载地址:Docker for Windows 下载完是一个安装程序,双击运行即可.注:如果您的系统不符合运行Docker for Windows的要求, ...
- 180217_JAVA学习_TreeSet中存放含多个String的类并设置排序规则
有Person类如下: class Person { String name; int age; String address; } 有main如下: import java.util.TreeSet ...
- Eclipse 校验取消
eclipse Multiple annotations found at this line错误,eclipse开发过程中,一些XML配置文件会报错,但是这些其实不是错,飘红的原因是因为eclips ...
- 深入理解abstract class和interface
摘自:http://www.ibm.com/developerworks/cn/java/l-javainterface-abstract/ (如有侵权,请留言,版主将立即删除) abstract c ...
- npm与gulp的使用
这边将工作中使用的npm以及gulp的一些方法做了整理,方便以后查阅,至少不用去麻烦度娘了~ A.npm的使用: 1.在你所需要的文件夹里面初始化npm--> npm init -y - ...
- leetCode题解 Student Attendance Record I
1.题目描述 You are given a string representing an attendance record for a student. The record only conta ...
- Oracle EBS 隐藏帮助-诊断-检查
- Oracle EBS AP更新供应商地址
SELECT pvs.vendor_site_id, pvs.party_site_id, hps.party_site_name, hps.object_version_number, hps.pa ...