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

讲我的思路:公式为 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

相关推荐

昨天 13:08
蚌埠坦克学院 C++
服从性笔试吗,发这么多笔,现在还在发。
蟑螂恶霸zZ:傻 x 公司,发两次笔试,两次部门匹配挂,
投递金山WPS等公司10个岗位 >
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
无敌虾孝子:喜欢爸爸还是喜欢妈妈
点赞 评论 收藏
分享
点赞 9 评论
分享
牛客网
牛客企业服务