腾讯笔试第二题喝咖啡请教

讲我的思路:公式为 ai * (j-1) + bi * (n-j)
化简为: j * (ai - bi) + b * n - a,
后面的 b* n - a 直接存进排队结果 sum 里面。
然后直接把 ai - bi 的值存进一个数组,然后对数组排序,数组中最大的值乘以 1,依次类推,最小的值乘以 n。

只过了 20 %,请教哪里有问题?
import java.util.Arrays;
import java.util.Scanner;

public class StarBucks {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        long sum = 0;
        int[] extra = new int[n];
        for(int i = 0; i< n; i++) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            sum +=  b * n - a;
            extra[i] = a-b;
        }
        Arrays.sort(extra);
        for(int i = extra.length -1,j = 1; i>=0; i--,j++) {
            sum += extra[i] * j;
        }
        System.out.println(sum);
    }
}


#腾讯##笔试题目#
全部评论
写了个题解腾讯2019.9.1后端开发笔试(超详细的解法!!!),有问题指出哈😁
点赞 回复 分享
发布于 2019-09-02 19:21
奉上100代码求其他题目答案 求搬运工和那个学习效率,求大佬解题 import java.util.*; public class 满意度 {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         int n = in.nextInt();                  long[][] arr = new long[n][2];              for (int i = 0; i < n; i++) {             arr[i][0] = in.nextLong();             arr[i][1] = in.nextLong();         }         Arrays.sort(arr, (e1, e2) -> (int) ((e2[0]-e2[1]) - (e1[0]-e1[1])));                  long count = 0;         for (int i = 0; i < arr.length; i++) {             count+=( arr[i][0]*(i)+arr[i][1]*(n-i-1));         }         System.out.println(count);     } }
点赞 回复 分享
发布于 2019-09-01 22:21
ai-bi有正负,考虑了么
点赞 回复 分享
发布于 2019-09-01 22:13
这题要biginteger
点赞 回复 分享
发布于 2019-09-01 22:16
要用高精度吧
点赞 回复 分享
发布于 2019-09-01 22:18
我C++ int过20%,改成long long AC🤣
点赞 回复 分享
发布于 2019-09-01 22:19
我也这么做的,后来发现不行,因为第一个人和最后一个人的时候乘数有0的情况,乘数0的时候就不能只计算ai-bi
点赞 回复 分享
发布于 2019-09-01 22:25
c++ int 20%  longlong 100%😂 你输给了范围。
点赞 回复 分享
发布于 2019-09-01 22:30
楼主聪明呀,我想了一会但是没有用做数学题目的思维考虑这道题
点赞 回复 分享
发布于 2019-09-01 22:37
哎我真的枯死了. 期末总结和这道都是20%. 最后半个多钟调半天弄不出来. 上牛客一看说改成long就行. 果然还是太年轻
点赞 回复 分享
发布于 2019-09-02 18:11
有注意到数据范围吗?
点赞 回复 分享
发布于 2019-09-02 19:58

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
点赞 9 评论
分享
牛客网
牛客企业服务