9.3微众银行笔试面经 - 编程题 & 题解

alt

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%内容,订阅专栏后可继续查看/也可单篇购买

🔥笔试编程真题宝典💯 文章被收录于专栏

📕分享大厂机试真题深度剖析核心考点,助你速通面试。

全部评论
笔试编程题解专栏前50个免费订阅,欢迎订阅,专栏会持续努力更新
1 回复 分享
发布于 2023-09-04 18:31 湖北
A出两道不也是黄了。
点赞 回复 分享
发布于 2023-09-07 09:03 山东

相关推荐

求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
8
31
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务