🔥 9.23 小米笔试面经 - 编程题 & 题解
考试时间:2023-09-23(100分钟)
投递岗位: 测试开发
T1
小明有N袋糖果,每次可以从所有非空的糖果袋子中分别拿出x个糖果,x大于0日小于等于每个非空袋子中糖果的数量,如果想把所有的糖果拿完,最少需要拿几次?
输入描述
第一行为整数N,表示袋子数量。
第二行到第N+1行,每行一个整数,共N个整数,表示N个袋子中各自糖果的数量
1 <= N <=100
每袋糖果的数量<=100
输出描述
一个整数,表示最少拿取次数。
题解
import java.util.PriorityQueue;
import java.util.Scanner;
// P1
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
PriorityQueue<Integer> queue = new PriorityQueue<>();
for (int i = 0; i < n; i++) {
int num = in.nextInt();
if (num > 0) queue.offer(num);
}
int times = 0;
while (!queue.isEmpty()) {
int x = queue.poll();
PriorityQueue<Integer> temp = new PriorityQueue<>();
while (!queue.isEmpty()) {
int r = queue.poll() - x;
if (r > 0) temp.offer(r);
}
queue = temp;
times++;
}
System.out.println(times);
}
}
T2
小明和小红相约以1~26这26个数字来对a~z这26个字母进行加密传输,即
1 -> a
2 -> b
...
25 -> y
26 -> z
现在希望能设计一种算法,给定一个数字序列,返回其有多少种解码方法。
输入描述
输入为一个由数字构成的字符串,长度不超过100,代表待解码序列。
输出描述
输出为一个整数,代表可行的解码方法数量
样例
输入:
13
输出:
2
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
🔥笔试编程真题宝典💯 文章被收录于专栏
📕分享大厂机试真题深度剖析核心考点,助你速通面试。