9.3微众银行笔试面经 - 编程题 & 题解
T1 切糖果
题目描述
小美想要买糖果店的一根长长的糖果。糖果店顾客可以从中选取一个位置然后老板会在那切断,糖果前端到那个切断位置的糖果就会出售给这位顾客。这个糖果其实不同段有着不同的口味,小美希望她选出来的糖果中各个段有着不同的口味,在这基础上希望能选出尽可能长的糖果。小美想知道她能买到最长多长的糖果,请你帮帮她。
输入描述
第一行1个整数n,表示糖果的长度。 第二行n个整数,其中
;表示从糖果前端开始第i 段的口味,每段均1为单位长度。
对于100%的数据,1 ≤ n ≤ 50000,1 ≤ ≤ 50000
输出描述
输出一行一个整数表示能买到的糖果的最长长度,且其中不包含相同只味。
样例
输入
5
1 2 3 3 4
输出
3
提示
如果我们买长度为4的糖果,包含的口味为[1,2,3,3],存在了重复。 而长度为3时,包含的口味为[1,2,3],不存在重复。因此长度3为最长的不存在重复口味糖果长度。
题解
简单签到题
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) a[i] = scanner.nextInt();
Set<Integer> vis = new HashSet<>();
for (int num : a) {
if (vis.contains(num)) break;
vis.add(num);
}
System.out.println(vis.size());
}
}
T2 酷
题目描述
酷酷的小明准备和小伙伴们展示他捏出来的超酷的橡皮泥士兵。在展示之前,小明发现有些橡皮泥士兵大小十分相似甚至 相同,这让小明感觉不是很酷,因为小明想要他的橡皮泥作品都有自己的风格,即使是大小也要有区别。小明的n个橡皮泥士 兵的大小分别为,小明可以通过给某个士兵加一单位像皮泥来使得其大小增加一单位。小明想知道如果他想要让 所有的橡皮泥士兵大小都不相同,至少需要一共加多少单位橡皮泥。
输入描述
第一行1个整数n,表示小明的橡反泥士兵数量。
第二行n个整数,分别表示小明的橡皮泥士兵的大小。
对于100%的数据,1 ≤ n ≤ 50000,1 ≤ ≤ 100000
输出描述
输出一行一个整数表示总共至少加多少单位的橡皮泥
样例
输入
5
1 1 2 3 3
输出
5
提示
我们给一个大小为1的橡皮泥士兵增加4单位橡皮泥,大小变为5。
再给一个大小为3的橡皮泥士兵增加1单位橡皮泥,大小变为4。
此时橡皮泥士兵们的
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
📕分享大厂机试真题深度剖析核心考点,助你速通面试。