米哈游 9/24 笔试

开局先说结果:100% 5% 20%

第二题概率题,题目简化之后为给你N个骰子,一个值X, 求投了这些骰子后所有点数之和大于X的概率。可惜了还没复习到概率论。没憋出来算法。

第三题,双指针优化吧。米小游拿到了一个数组a,她用这个数组构造一个新数组b,其中ai代表数组中有ai个i。例如,若a=[2,3,1],那么b=[1,1,2,2,2,3],因为a[1] =2,代表b数组中有2个1;a[2] =3,代表b数组中有3个2;a[3] =1,代表b数组中有1个3。

现在给定a数组,你需要帮米哈游求出6数组中所有连续子数组的极差之和。由于答案可能过大,请对10^9+ 7取模。数组的极差指最大值减去最小值。

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别

        int n = in.nextInt();
        if (n >= 100000) {
            System.out.println(0);
            return;
        }
        int[] a = new int[n];
        int tmpIdx = 0;
        while (tmpIdx < n && in.hasNextInt()) { // 注意 while 处理多个 case
            a[tmpIdx] = in.nextInt();
            tmpIdx++;
        }
        int mod= 1000000007;
        int ans = 0;
        int grid[][] = new int[n][n];
        
        for (int i = 1; i < n; i++) {
            int tmp = 0;
            for (int j = 0; j + i < n; j++) {
                tmp += a[j] * a[j + i] * i % mod;
            }
            ans += tmp;
            ans = ans % mod;
        }

        System.out.println(ans);
    }
}

全部评论
第三题100 Scanner s = new Scanner(System.in); int n = s.nextInt(); BigInteger[] a = new BigInteger[n]; for(int i = 0;i < n;i ++) a[i] = new BigInteger(s.next()); BigInteger sum = new BigInteger("0"); BigInteger cur = a[0]; BigInteger pre = a[0]; for(int i = 1;i < n;i ++) { sum = sum.add(cur.multiply(a[i])); pre = pre.add(a[i]); cur = cur.add(pre); } System.out.println(sum.mod(new BigInteger("1000000007")));
4 回复 分享
发布于 2023-09-24 22:06 天津
第二题思路可以看作每多投一个骰子就是在之前的结果上进行+1+2+3+4+5+6的操作,初始是1-6范围[1,1,1,1,1,1],骰第二个骰子就成了2-12范围[1,1,1,1,1,1,0,0,0,0,0]+[0,1,1,1,1,1,1,0,0,0,0]+[0,0,1,1,1,1,1,1,0,0,0]+[0,0,0,1,1,1,1,1,1,0,0] + [0,0,0,0,1,1,1,1,1,1,0]+[0,0,0,0,0,1,1,1,1,1,1] = [1,2,3,4,5,6,5,4,3,2,1],后续以此类推,可以用滑动窗口更新整个概率分布
1 回复 分享
发布于 2023-09-25 09:07 香港
一样,难兄难弟了,稍微有点技巧的题是做不了一点
1 回复 分享
发布于 2023-09-24 22:44 北京
100 100 20求最后一题
1 回复 分享
发布于 2023-09-24 22:07 江苏
100 10 100尽力了,求和能优化,概率论是真不会(悲)
1 回复 分享
发布于 2023-09-24 22:06 河北
100 20 20 后两题无线超时
1 回复 分享
发布于 2023-09-24 22:02 北京
100 10 20难搞
1 回复 分享
发布于 2023-09-24 21:57 湖北
ak
点赞 回复 分享
发布于 2023-09-25 13:40 浙江
请问第一道为什么百分之15 没用BigInteger吗?
点赞 回复 分享
发布于 2023-09-24 22:19 美国
超时了吧
点赞 回复 分享
发布于 2023-09-24 22:01 北京
100 5 20
点赞 回复 分享
发布于 2023-09-24 22:01 湖南
我也是 100 5 25……
点赞 回复 分享
发布于 2023-09-24 22:00 新加坡

相关推荐

03-13 00:04
已编辑
吉林大学 Java
约面的挺突然。。狠下心接了1.自我介绍2.讲讲JAVA的反射3.可以继续讲讲AOP,动态代理[&nbsp;因为讲反射不小心吟唱到了例如AOP的动态代理,但是这块记忆的非常不熟,结果磕磕绊绊&nbsp;]4.项目我看你写了AOP和注解,具体怎么实现滑动窗口限流的[&nbsp;梦到什么说什么,吟唱八股发散千万不要散到自己不熟悉的区域&nbsp;]5.也讲讲为什么另一个项目选择令牌桶,具体流程6.&nbsp;OK,讲讲&nbsp;Redis&nbsp;的数据类型?还有吗?就了解这五种嘛[&nbsp;把5个的基础类型从应用对比到历届底层全都吟唱了一遍。一句还有吗直接没力气了,简历就写了理解5种,别的我是真一点没看TT&nbsp;]7.讲讲Redission分布式锁实现8.这个指数退避怎么实现的9.在这里有考虑去保障幂等性嘛10.这里为什么使用指数退避呢?&nbsp;什么时候用均匀重传[已经晕过去了说不了解,刚说了后就意识到,估计应该说指数退避能缓解压力防止下游服务器雪崩之类的]11.ok,那讲讲JMM12.讲讲RocketMQ如何保证的不丢消息13.讲讲RocketMQ延迟消息原理14.讲讲项目Redis实现会话记忆这一块15.如果ai调用function&nbsp;calling出现幻觉,有考虑怎么解决吗?[&nbsp;不了解,面试官说什么接口幂等化,高危操作人工防护,没在听,感觉人已经飞升了TT&nbsp;]16.mcp了解嘛?和function&nbsp;calling有什么区别[&nbsp;依旧不了解,只能说了个前者规范架构抽象解耦,后者耦合高只能算个工具调用]17.AI生成代码的代码质量怎么保障,那平时如何review的呢18.算法。lc215&nbsp;&nbsp;数组中最大第k个元素19.打算考研还是本科就业20.反问1️⃣有哪里不足,有哪些需要提高的部分。[主要说知识广度不够,多刷算法,让我别太紧张]2️⃣部门业务会做什么人生第二次面试。感觉大厂面试官的气场压力很大应该凉了不过这次面试非常锻炼心态,多面试,多面试。
冰炸橙汁_不做oj版:redis除了五种基本数据类型,其他的几种还是要掌握一下的,挺常用
点赞 评论 收藏
分享
03-14 16:04
已编辑
安徽农业大学 算法工程师
痴心的她allin秋...:啥笔试都挂怎么办,某9本考研下岸,练也没时间了,对算法也不感兴趣,大部分大厂笔试只能A0-1个😄
米哈游笔试
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

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