首页 > 顺丰29笔试
头像
SWUSTsang
编辑于 2020-08-29 17:05
+ 关注

顺丰29笔试

1 等差数列   没思路    混了9%
2 货车           18%   不知道原因,不晓得什么情况没考虑

大佬指点一下啊,心态快炸了..........
Scanner in = new Scanner(System.in);
String first = in.nextLine();
String second = in.nextLine();

String[] fir = first.split(" ");

int count = Integer.valueOf(fir[0]);
int cars = Integer.valueOf(fir[1]);

String[] sec = second.split(" ");
int[] a = new int[count];
for (int i = 0; i < count; i++) {
    a[i] = Integer.valueOf(sec[i]);
}

Arrays.sort(a);

int count0 = 0;
int index = 0;
for (int i = 0; i < count; i++) {
    if(a[i] == 0){
        count0++;
        index = i;
    }
}

long qian = 0;
int zz = 0;
if(count0 >= cars - 1){
    for(int i = index + 1; i < count; i++){
        qian += a[i];
    }
    qian = qian * qian;
    zz = count - (index + 1);
} else {

    long qian1= 0;
    long qian2 = 0;
    if(count0 == 0){
        for (int i = 0; i < cars - 1; i++){
            qian1 += a[index + i] * a[index + i];
        }

        for(int i = cars - 1; i<count; i++){
            qian2 += a[i];
        }

        zz = count - ( cars -1);
    }else {
        cars = cars - count0;
        for (int i = 0; i < cars - 1; i++){
            qian1 += a[index + 1 + i] * a[index + 1 + i];
        }

        for(int i = index + 1 + cars -1; i< count; i++){
            qian2 += a[i];
        }
        zz = count - (index + 1 + cars -1);
    }

    qian = qian1 + qian2* qian2;
    //zz = count - (index + 1 + cars -1);
}



System.out.println(qian + " " + zz);


全部评论

(15) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐