小编Rob*_*ert的帖子

MySQL Native Driver和MySQL Client Library之间有什么不同

我想知道MySQL Native Driver和MySQL Client Library之间的区别
以及何时使用它们

mysql mysqli mysqlnd

7
推荐指数
2
解决办法
1万
查看次数

在不到2秒的时间内从控制台读取600,000输入

目标

我正在解决这个问题:

小女孩和最大总和

小女孩非常喜欢阵列查询的问题.

有一天,她遇到了一个众所周知的问题:你有一个n个元素的数组(数组的元素从1开始索引); 另外,有q个查询,每个查询由一对整数li,ri(1≤li≤ri≤n)定义.您需要为每个查询找到具有从li到ri(包括)的索引的数组元素的总和.

小女孩发现问题相当无聊.她决定在回复查询之前重新排序数组元素,使查询回复的总和最大化.您的任务是找到此最大总和的值.

输入第一行包含两个空格分隔的整数n(1≤n≤2·105)和q(1≤q≤2·105) - 数组中的元素数和相应的查询数.

下一行包含n个空格分隔的整数ai(1≤ai≤2·105) - 数组元素.

以下q行中的每一行包含两个空格分隔的整数li和ri(1≤li≤ri≤n) - 第i个查询.

输出在单行中打印单个整数 - 重新排序数组元素后查询答复的最大总和.

使用测试7(请参阅问题末尾的测试结果),输入是一个大小为200,000且包含200,000个查询(具有rl值)的数组.

输入看起来像这样:

200000 200000
189622 189286 194361 184457 182376 183471 197548 184736 195806 ... 200,000 integers

188738 290041
33738 90041
122738 390041
... 200,000 line
Run Code Online (Sandbox Code Playgroud)

您可以下载示例输入文件,也可以创建自己的示例输入.数字本身并不重要.


问题

我需要读取600,000条输入线,而不超过2秒的执行时间.问题是,它甚至没有在2秒内读取前200,000输入.

如何在2秒内加速我的代码读取所有600,000输入?


代码

这是我的第一次尝试:

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

public class Main {
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
        int …
Run Code Online (Sandbox Code Playgroud)

java performance time execution-time

4
推荐指数
1
解决办法
482
查看次数

标签 统计

execution-time ×1

java ×1

mysql ×1

mysqli ×1

mysqlnd ×1

performance ×1

time ×1