度小满,后端,9.5号笔试
度小满9月5号笔试,Java后端。
20个选择,2个编程,15:00--16:30共一个半小时。
补充:赛码网,录屏开摄像头,没有牛客的手机小程序监控。编程题可以跳出界面,使用本地IDE,不受限制。
编程题
赖床的小满
- 时间限制:3000MS
- 内存限制:589824KB
题目描述:
冬天的被窝就如同磁铁一样,吸引着铁打的身体。
某天早上,小满由于前—天的修仙,想睡一个时间为k个单位的回笼觉。
老妈会在n个可能的时刻中等可能性地选择两个时刻来叫小满起床。
小满会在第一次被叫醒时开始睡回笼觉。如果老妈第二次来叫她起床时还在睡觉,老妈就会生气。
小满想让你帮她计算,老妈生气的概率。
输入描述:
第一行两个整数n,k (n<=10个5,k<=10^9)
第二行n个互不相同不大于10^9的整数,表示老妈可能来的时间。输出描述:
输出一个最简分数(或者0/1,表示无论如何老妈都不会生气),表示老妈生气的概率。
样例输入:
3 1 1 2 3
样例输出:
2/3
太菜了,只过了18%。。。貌似是因为最后分数化简的问题,还有应该记忆一下的空间换时间。
貌似这么几个坑:排序,long类型,分数简化,循环break剪枝,二分搜索。。。
小A的治疗节奏
- 时间限制: 3000MS
- 内存限制: 589824KB
题目描述:
在xxxx年,小A成功研发出了一种新型疗法:节奏疗法。
节奏疗法是这样的:使用心跳节奏器来识别病人的心跳是否稳定,并在合适的时候按下节奏器上的按钮,来调节引导病人的心跳保持稳定。但是,在不合适的地方按下时,则可能会导致病情恶化。于是,医生在治疗的时候需要时刻保持专注。
在某一段时间内,病人的心跳节奏可以用OX来表示,其中O表示此时可以按下按钮或者不按,而X表示此时不能按下按钮。为了训练,小A找来m位医生,并给他们一段模拟的心跳节奏,之后小A得到了这m位医生各自的按键情况。小A找你帮忙写个程序,来判断哪些医生的按键是合法的。
输入描述:
第一行为只由OX组成的字符串,表示模拟的心跳节奏;
第二行一个正整数m;
接下来m行,每行一个只有0、1组成的字符串,表示该医生的按键情况。其中0表示此时未按键,1表示此时有按键。
设|S|表示心跳节奏的长度。
1 <= |S| <= 1000,1 <= m <= 450,所有的字符串长度相同。
样例输入:
OOXX 3 1111 1100 0100
样例输出:
NO YES YES
这个直接暴力,过了100%。放一下我丑陋的代码吧。
import java.util.ArrayList; import java.util.Scanner; /** * Created on 2021/9/5,下午 3:39 * 小A的节奏疗法 * @author SongX64 */ public class Main2 { /** * O可以按也可以不按 * X不能按 **/ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String xo = scanner.nextLine(); Integer m = Integer.valueOf(scanner.nextLine()); ArrayList<String> arrayList = new ArrayList<>(m); for (int i = 0; i < m; i++) { arrayList.add(scanner.nextLine()); } // OOXX char[] xoChars = xo.toCharArray(); boolean flag = true; for (int i = 0; i < arrayList.size(); i++) { // 1100 char[] chars = arrayList.get(i).toCharArray(); for (int j = 0; j < chars.length; j++) { // NO的情况 if (xoChars[j] == 'X' && chars[j] != '0') { System.out.println("NO"); flag = false; break; } } if (flag) { System.out.println("YES"); } flag = true; } } }
写经验攒人品啊,求求老天了,给个offer吧,现在本菜鸡还是0Offer,进个面也行啊最近都没有公司来捞我面试QAQ
#度小满##笔试题目##笔经##秋招##Java##校招#