莉莉丝8/11后台开发笔试题

第三题咋搞啊xdm,死活通不过啊。前两题都通过了,大家可以参考下。

第一题

public ListNode formatList (ListNode head) {
        // write code here
        ListNode trail = head.next;
        ListNode newHead = trail.next;
        while(trail != null && newHead != null){
            trail.next = newHead.next;
            newHead.next = head;
            trail = trail.next;
            head = newHead;
            if(trail != null) { newHead = trail.next; }
        }
        return head;
    }

第二题

public long ans (int[] array, int k) {
        // write code here
        long count = 0;
        int len = array.length;
        Arrays.sort(array);
        for(int i = 0;i < len;i++){
            if(array[i] >= k){ break; }
            for(int j = i+1;j < len;j++){
                if(array[i] + array[j] <= k){ count++; }
                else{ break; }
            }
        }
        return count;
    }

第三题

public static long minimum (int[] a) {
        // write code here
        long sum = 0;
        for(int num : a){ sum+= num; }
        if(sum % 2 == 0){ return 0; }
        long avg = sum / 2;
        int len = a.length;
        long[] dp = new long[(int)avg+1];
        for(int i = 1;i <= len;i++){
            for(int j = (int)avg;j >= 1;j++){
                if(j >= a[i-1]){ dp[j] = Math.max(dp[j],dp[j-a[i-1]]+a[i-1]); }
            }
        }

        return sum - 2*dp[(int)avg];
    }
#莉莉丝笔试##笔试题目##莉莉丝游戏#
全部评论
第三题你双循环肯定超时呀,用前缀数组加双指针做
1 回复 分享
发布于 2021-08-11 21:02
第三题滑动窗口找最接近sum/2
1 回复 分享
发布于 2021-08-11 21:10
使用左右指针,如果这两个之间求出来的最后差比总sum一半大就l++否则r++
点赞 回复 分享
发布于 2021-08-11 21:03
第二题暴力c++超时,需要二分 第三题是和的绝对值差的最小值吗, 70%,显示答案不对
点赞 回复 分享
发布于 2021-08-11 21:04
第二题咋整
点赞 回复 分享
发布于 2021-08-11 21:06
第三题我dfs加剪枝过了20,我最后也没检查出哪里错了
点赞 回复 分享
发布于 2021-08-11 21:13
大佬能说下三个题目是啥吗?
点赞 回复 分享
发布于 2021-08-12 18:05

相关推荐

头像
02-15 16:23
中南大学 Java
野猪不是猪🐗:签了美团真是不一样! 亲戚们都知道我签了美团,过年都围着我问送一单多少钱,还让弟弟妹妹们引以为戒,笑我爸我妈养了个🐢孩子,说从小就知道我这个人以后肯定没出息,我被骂的都快上天了
点赞 评论 收藏
分享
牛客鼠:校友你这简历基本无敌了,春招刷刷题去冲大厂
点赞 评论 收藏
分享
评论
1
5
分享

创作者周榜

更多
牛客网
牛客企业服务