2023 微众银行笔试题 0903

笔试时间:2023年9月3日 秋招

第一题

题目:切糖果

小美想要买糖果店的一根长长的糖果,糖果店顾客可以从中选取一个位置然后老板会在那切断,糖果前端到那个切断位置的糖果就会出售给这位顾客。这个糖果其实不同段有着不同的口味,小美希望她选出来的糖果中各个段有着不同的口味,在这基础上希望能选出尽可能长的糖果。小美想知道她能买到最长多长的糖果,请你帮帮她。

输入描述

第一行1个整数n,表示糖果的长度。

第二行n个整数a1a2...an,其中ai表示从糖果前端开始第i段的口味,每段均1为单位长度。

对于100%的数据,1<=n<=50000,1<=ai<=50000

输出描述

输出一行一个整数表示能买到的糖果的最长长度,且其中不包含相同口味。

样例输入

5

1 2 3 3 4

样例输出

3

提示

如果我们买长度为4的糖果,包含的口味为[1,2,3,3],存在了重复。

而长度为3时,包含的口味为[1,2,3],不存在重复。因此长度3为最长的不存在重复口味糖果长度。

参考题解

Java:[此代码未进行大量数据的测试,仅供参考]

import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] arr = new int[n];

        for (int i = 0; i < n; i++) {
            arr[i] = scanner.nextInt();
        }

        Map<Integer, Integer> mp = new HashMap<>();
        int i = 0;

        for (; i < n; i++) {
            mp.put(arr[i], mp.getOrDefault(arr[i], 0) + 1);
            if (mp.get(arr[i]) >= 2) {
                break;
            }
        }

        System.out.println(i);
    }
}

Python:[此代码未进行大量数据的测试,仅供参考]

n = int(input())
arr = list(map(int, input().split()))
mp = {}

i = 0

for num in arr:
    if num in mp:
        mp[num] += 1
    else:
        mp[num] = 1

    if mp[num] >= 2:
        break
    i += 1

print(i)

第二题

题目:酷

酷酷的小明准备和小伙伴们展示他捏出来的超酷的橡皮泥士兵。在展示之前,小明发现有些橡皮泥士兵大小十分相似甚至相同,这让小明感觉不是很酷,因为小明想要他的橡皮泥作品都有自己的风格,即使是大小也要有区别。小明的n个橡皮泥士兵的大小分别为a1,a2...an,小明可以通过给某个士兵加一单位皮泥来使得其大小增加一单位。小明想知道如果他想要让所有的橡皮泥士兵大小都不相同,至少需要一共加多少单位橡皮泥。

输入描述

第一行1个整数n,表示小明的橡皮泥士兵数量;

第二行n个整数a1a2...an,分别表示小明的橡皮泥士兵的大小。

对于100%的数据,1<=n<=50000,1<=ai<=100000

输出描述

输出一行一个整数表示总共至少加多少单位的橡皮泥.

样例输入

5

1 1 2 3 3

样例输出

5

提示

我们给一个大小为1的橡皮泥士兵增加4单位像皮泥,大小变为5;

再给一个大小为3的橡皮泥士兵增加1单位像皮泥,大小变为4。

此时橡皮泥士兵们的大小分别为1、2、3、4、5,没有两个橡皮泥士兵拥有相同大小了。

可以证明没有更优方案。

参考题解

将数组排序,进行遍历,根据泥士兵大小是否相等分别处理

Java:[此代码未进行大量数据的测试,仅供参考]

import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static int minn(int[] nums) {
        Arrays.sort(nums);
        int ans = 0, taken = 0;
        for (int i = 1; i < nums.length; ++i) {
            if (nums

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2023 秋招笔试题汇总解析 文章被收录于专栏

2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。

全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
3 29 评论
分享
牛客网
牛客企业服务