【2023米哈游-2】数组相关

米哈游拿到了一个数组a, 她用这个数组构造了一个新数组b, 其中a_i代表b数组中有a_i个i.

例如, a = [2,3,1], 则b = [1,1,2,2,2,3].解释: 2表示1有两个, 3表示2有3个, 1表示3有1个.

现给定a, 你需要求出b数组中所有b数组中连续子数组的极差之和. 由于答案过大, 对10^9+7取模.(极差指最大值减最小值)

输入描述:

第一行输入一个正整数n, 表示a数组的个数.

第二行输入n个正整数a_i, 表示a数组的元素.

示例1:

input:
2
2 1

output:
2

解题思路

一次遍历, 直接将最大和-最小和;

代码实现

import java.util.*;

public class test {
    final static long mod = (long)Math.pow(10,9)+7;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        long ans = 0;
        int m;
        long sum = 0, num = 0;

        for (int i = 1; i <= n; i++) {
            m = sc.nextInt();
            if (i != 1) {
                ans += ((num*i-sum+mod)%mod)*m%mod;
                ans %= mod;
            }
            sum = (sum + (long) m *i) % mod;
            num = (num + m) % mod;
        }
        System.out.println(ans);
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 米哈游是一家以游戏开发为主要业务的公司,Java后端笔试可能会涉及以下方面的内容: 1. Java基础知识:笔试中可能会涉及Java的基本语法、面向对象编程、集合框架等内容,考察应聘者对Java语言的熟悉程度。 2. 数据库:Java后端开发常常需要与数据库进行交互,因此笔试中可能会考察SQL语句的编写、数据库设计与优化等方面的知识。 3. Web开发:Java后端开发通常需要熟悉一些Web开发技术,如Servlet、JSP、Spring框架等。笔试中可能会出现相关的题目,考察应聘者对Web开发的了解程度。 4. 网络通信:Java后端开发常常需要进行网络通信,可能会使用TCP/IP协议、HTTP协议等。笔试中可能会出现与网络通信相关的题目,考察应聘者对网络通信知识的掌握。 5. 算法数据结构Java后端开发中,对算法数据结构的理解与运用也非常重要。笔试中可能会出现一些与算法数据结构相关的题目,考察应聘者的编程能力与解决问题的能力。 米哈游作为一家游戏开发公司,对Java后端开发人员的要求较高。参加该公司笔试需要对Java开发、数据库、Web开发、网络通信等方面的基础知识有一定的了解与掌握。同时,还需要有较强的编程能力和解决问题的能力。只有掌握了这些知识和能力,才能在米哈游Java后端笔试中有所斩获。 ### 回答2: 米哈游java后端笔试是米哈游公司的一项面试程序,用于选拔适合担任java后端开发职位的候选人。此笔试主要考察候选人在java后端开发方面的知识和技能。 在笔试中,候选人可能会遇到一些关于java编程语言和相关技术的问题。这些问题可能涉及到java的基本语法、面向对象编程、异常处理、多线程、IO操作等方面的内容。候选人需要能够熟练运用这些知识解决问题,并编写高质量的java后端代码。 此外,笔试可能还包括一些与数据库相关的问题,例如SQL查询语句的编写、数据库连接和事务处理等。候选人需要熟悉关系型数据库的基本概念和操作,以及常见的数据库管理系统如MySQL或Oracle等。 另外,米哈游java后端笔试也可能要求候选人解决一些算法数据结构方面的问题。这些问题可能涉及到数组、链表、树、图等数据结构的使用以及常见的算法如搜索、排序和动态规划等。 总之,米哈游java后端笔试是一项通过考察候选人的java后端开发技能,来评估其适应米哈游公司java后端开发职位的能力和潜力的评估工具。候选人需要在笔试中展示他们在java编程语言、数据库和算法方面的扎实知识和解决问题的能力。 ### 回答3: 米哈游java后端笔试是米哈游公司针对java后端开发岗位的面试笔试。笔试内容主要考察应聘者在java开发方面的能力和经验。 笔试可能包括以下几个方面的内容: 1. Java基础知识:包括Java语法、面向对象编程、集合框架等基础知识。应聘者需要熟悉Java的常用类库和API,能够编写简单的Java程序。 2. 数据库和SQL:应聘者需要熟悉数据库的基本概念和常用操作,熟练使用SQL语言进行数据的查询和操作。可能需要编写一些简单的SQL语句。 3. Web开发:应聘者需要了解常用的Web开发技术,如Servlet、JSP、Spring、MyBatis等。可能需要编写一些简单的Web应用程序,实现基本的增删改查功能。 4. 多线程编程:应聘者需要理解多线程编程的基本概念和原理,能够使用Java提供的多线程相关API进行并发编程。 5. 性能优化和调优:应聘者需要了解如何进行性能优化和调优,能够使用一些常用的工具对程序进行性能分析和调试。 6. 设计模式:应聘者需要了解常用的设计模式,能够根据实际需求进行合理的设计和开发。 针对这些内容,应聘者可以提前进行充分准备,复习相关知识。同时,应该注重实践,多做一些相关的项目和练习题,提高自己的实际动手能力。 对于笔试中遇到的问题或难点,应聘者可以积极思考和分析,尽量给出自己的解决方案。如果不确定的地方可以标明,并在之后的面试环节中与面试官进行深入讨论。 最后,应聘者在笔试过程中要保持冷静和自信,展示出自己的优势和能力。希望以上回答能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值