京东笔试股票27%为啥呢,一直调不过去

最开始版本:
import java.util.Arrays;
import java.util.Scanner;

public class JingDong {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input[] = scanner.nextLine().split(" ");
        int m = Integer.parseInt(input[0]);
        int n = Integer.parseInt(input[1]);
        int a[] = new int[m];
        String s[] = scanner.nextLine().split(" ");
        for(int i=0;i<m;i++){
            a[i] = Integer.parseInt(s[i]);
        }

        Arrays.sort(a);

        int q = Integer.parseInt(scanner.nextLine());
        for(int j=0;j<q;j++){
            int cur = Integer.parseInt(scanner.nextLine());
            int sum = 0;
            int index = 1;
            int jishu = 0;
            for(int p =cur-1;p>=0;p--){
                jishu++;
                sum = sum + a[p]*index;
                if(jishu==n){
                    index++;
                    jishu=0;
                }
            }
            System.out.println(sum);
        }

    }
}
做了改进后:
import java.util.Arrays;
import java.util.Scanner;

public class JingDong {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input[] = scanner.nextLine().split(" ");
        int m = Integer.parseInt(input[0]);
        int n = Integer.parseInt(input[1]);
        int a[] = new int[m];
        String s[] = scanner.nextLine().split(" ");
        int he[] = new int[m];
        Arrays.fill(he,0);
        for(int i=0;i<m;i++){
            a[i] = Integer.parseInt(s[i]);
            if(i==0) he[i] = a[i];
            else he[i] = he[i-1]+a[i];
        }

        Arrays.sort(a);

        int q = Integer.parseInt(scanner.nextLine());
        for(int j=0;j<q;j++){
            int cur = Integer.parseInt(scanner.nextLine());
            int sum = 0;
            int index = 1;
            for(int p =cur-1;p>=0;p=p-n){
                int c = he[p]-(p>=n?he[p-n]:0);
                sum = sum+c*index;
                index++;

            }
            System.out.println(sum);
        }

    }
}


#京东笔试##笔试题目##京东#
全部评论
c++一直18
1 回复 分享
发布于 2020-04-18 21:10
我怎么改都是27,最后一题都没写
1 回复 分享
发布于 2020-04-18 21:09
和楼主方法一样c++写的,提示运行超时,27% 。坑爹啊
1 回复 分享
发布于 2020-04-18 21:09
我也是。。。一开始被牛客的输入输出坑,一直0,,后面调好了一直27,第二题都没做。。。
1 回复 分享
发布于 2020-04-18 21:08
python18% 一直在报时间超限😂
1 回复 分享
发布于 2020-04-18 21:05
看到大家都是27我就放心了😶
点赞 回复 分享
发布于 2020-04-19 12:37
18Python路过
点赞 回复 分享
发布于 2020-04-19 09:29
27+1
点赞 回复 分享
发布于 2020-04-18 22:43
有没有兄弟是直接申请定长数组做的呢,忽然感觉可能是与堆区和栈区申请出来的数组大小限制或者是效率有那么一点差距可能导致这个结果?
点赞 回复 分享
发布于 2020-04-18 21:37
27+1
点赞 回复 分享
发布于 2020-04-18 21:29
27%  +1
点赞 回复 分享
发布于 2020-04-18 21:20
同27, 因为Q的范围太大了,最大好像是50000还是多少,等于一个样例运行50000次,肯定超时啊
点赞 回复 分享
发布于 2020-04-18 21:17
第二题直接样例就是25%了,神奇😂
点赞 回复 分享
发布于 2020-04-18 21:14
27+1,第二题38~
点赞 回复 分享
发布于 2020-04-18 21:14
同27%,不知道什么情况
点赞 回复 分享
发布于 2020-04-18 21:13
股票啥股票啊 为啥我的题是长方形纸盒和火车位置 咱们题咋不一样勒
点赞 回复 分享
发布于 2020-04-18 21:13
同样的代码,不同的调试时间,一次过了27%,还有次过了50%😂😂什么鬼
点赞 回复 分享
发布于 2020-04-18 21:12
发现很多同胞,第一题dp只有27%,第二题没写完
点赞 回复 分享
发布于 2020-04-18 21:10
我也27 应该是先计算出所有的情况,然后查的时候直接查表。 我感觉应该是卖出股票的数量之间是有联系的,估计最后推一个公式出来 然后就可以a了。
点赞 回复 分享
发布于 2020-04-18 21:10
我也是!我觉得没问题啊 怎么改都改不出来
点赞 回复 分享
发布于 2020-04-18 21:09

相关推荐

评论
3
5
分享

创作者周榜

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