微众银行笔试9.3 Java开发

第一题,HashSet

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Main1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = in.nextInt();
        }
        Set<Integer> cad = new HashSet<>();
        int count = 0;
        for (int i = 0; i < n; i++) {
            if (!cad.contains(arr[i])) {
                cad.add(arr[i]);
                count++;
            } else {
                break;
            }
        }
        System.out.println(count);
    }
}

第二题,主要思路是先将输入的数组排序,然后遍历数组,如果当前元素小于等于前一个元素,则将其增加到前一个元素加一的大小,并累加所需的橡皮泥数量。

import java.util.*;
public class Main2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }
        Arrays.sort(a);
        long ans = 0;
        for (int i = 1; i < n; i++) {
            if (a[i] <= a[i - 1]) {
                ans += a[i - 1] - a[i] + 1;
                a[i] = a[i - 1] + 1;
            }
        }
        System.out.println(ans);
    }
}

第三题,将问题转化为求解有多少个子区间的和等于 u/v * 子区间长度。然后,前缀和。

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

public class Main3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int u = sc.nextInt();
        int v = sc.nextInt();
        int[] a = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            a[i] = sc.nextInt();
        }
        long ans = 0;
        HashMap<Long, Integer> map = new HashMap<>();
        map.put(0L, 1);
        long sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += a[i] * v - u;
            if (map.containsKey(sum)) {
                ans += map.get(sum);
                map.put(sum, map.get(sum) + 1);
            } else {
                map.put(sum, 1);
            }
        }
        System.out.println(ans);
    }
}

全部评论
互联网金融行业考虑不,招联金融,base深圳, 招商银行和联通组建 国内消费金融top 有开发 产品 运营岗https://www.nowcoder.com/share/jump/2960110952044427369
1 回复 分享
发布于 2023-09-06 12:40 广东
第三题直接暴力两层循环a出来80%
1 回复 分享
发布于 2023-09-04 09:35 山东
您好,有兴趣投递中金所技术公司吗,投递连接https://neitui.italent.cn/cffexit/sharejobs?shareId=cf9ba558-9b4e-4f46-a803-a01c64bd37c8,具体可以看我主页哦
点赞 回复 分享
发布于 2023-09-05 07:22 上海
这第一题,这样做不合适吧?
点赞 回复 分享
发布于 2023-09-04 16:23 陕西
你好,sum+=a【i】✘v-u这一步有一点看不懂,是怎么转化的呢
点赞 回复 分享
发布于 2023-09-03 23:08 重庆
我第二题和你写的一样,为什么只过了27%?我的ans是int类型,你的是long类型,别的都一样
点赞 回复 分享
发布于 2023-09-03 22:42 北京

相关推荐

LastWh1spe...:ssob真有些人和那个没睡醒一样
点赞 评论 收藏
分享
时间线:&nbsp;1.4-1.5:&nbsp;boss&nbsp;牛客&nbsp;官网&nbsp;实习僧海投了两天,&nbsp;感觉确实没啥招人的啊,&nbsp;心里凉了一半.1.6:&nbsp;中午快手约面,&nbsp;下午字节hr飞书私聊约面,&nbsp;当时想着第一次面大厂感觉三个过一个一面就已经赢了.1.7:&nbsp;下午&nbsp;3点大厂处女面,&nbsp;哈哈面试官是重邮红岩的直接保送;&nbsp;5点快手一面,&nbsp;我说这个是我的第二次大厂面试,&nbsp;面试官问要是拿到字节和快手选择哪个,&nbsp;我说昨天看了一晚上快手百分百选快手哈哈哈.&nbsp;晚上5.30字节约二面,&nbsp;快手约二面,&nbsp;小红书约一面.1.8:&nbsp;下午2点快手二面,&nbsp;聊天面体验非常好(当天电话确认入职时间);&nbsp;4点字节二面这次不是校友了,&nbsp;然后有一个CSS实现switch效果的忘记属性咋写了,&nbsp;感觉危了;&nbsp;7.30&nbsp;问字节hr是不是挂了;&nbsp;9点开始小红书一面,&nbsp;难死我了,&nbsp;但我还是笑着面完了,&nbsp;然后卸载了小红书,&nbsp;但是过了一会会小红书hr约二面,&nbsp;遂下回来了字节约三面.1.9:&nbsp;下午2点字节三面,&nbsp;依旧聊天+算法,&nbsp;自己太菜了有一个写错了,&nbsp;面完感觉又危了;&nbsp;5点面小红书20min结束(offer审批);5.30又去问字节hr是不是挂了,&nbsp;hr小姐姐说干嘛用一个句式,&nbsp;我说手写题又又又没写出来😂,&nbsp;2min后约hr面;8.30&nbsp;快手offer总结,&nbsp;自己运气好遇到了好公司好部门好面试官,&nbsp;字节剪映&nbsp;快手电商&nbsp;小红书支付的面试体验都非常好,&nbsp;不会的题会带你一步一步思考,&nbsp;流程也非常快全部都是当天推进,&nbsp;小红书是以分钟为单位推进.&nbsp;&nbsp;面经以及细节等我慢慢整理,&nbsp;&nbsp;以及保佑所有的审批不要出问题,&nbsp;我是真怕最后全过了0offer😂bg:&nbsp;重邮&nbsp;大数据&nbsp;蓝山工作室&nbsp;一段非大厂实习
独角仙梦境:这是真👻了
找实习记录
点赞 评论 收藏
分享
评论
14
20
分享

创作者周榜

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