拼多多 第一题,第三题,求帮忙看看哪错啦?

第一题:题目中的测试用例过了,我在想是不是我的输入输出有问题?


public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);

    String nn=sc.nextLine(); if(nn==null||nn.length()==0){
        System.out.println(0);
    } int n=new Integer(nn); if(n==0||n<4||n%2!=0)
        System.out.println(0);

    String str=sc.nextLine();
    String[] strings=str.split(" "); int[] arr=new int[strings.length]; for(int i=0;i<strings.length;i++){
        arr[i]=new Integer(strings[i]);
    }
    Arrays.sort(arr); int max=arr[0]+arr[n-1]; int min=arr[n/2-1]+arr[n/2];
    System.out.println(max-min);
}
第三题:排列组合那没问题,题目中的测试用例也过了,我在想是不是我的输入输出有问题?

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in); //String str = "{31,18,19,1,25}";  int d = 10; double res = 0;

    String str = sc.next(); if(str!=null&&str.length()>2){
        str=str.substring(1,str.length()-1);
        String[] strings=str.split(","); int[] arr=new int[strings.length]; for(int i=0;i<strings.length;i++){
            arr[i]=Integer.valueOf(strings[i]);
        }
        d = sc.nextInt();

        PDD3 obj = new PDD3();
        obj.combinationSum(arr, 2, d);
        res = (double) count / total;
        System.out.println(String.format("%.6f", res));
    }else{
        System.out.println(String.format("%.6f", res));
    }




} static int count = 0; static int total = 0; public List<List<Integer>> combinationSum(int[] candidates, int target, int d) {
    List<List<Integer>> result = new ArrayList<>();
    Arrays.sort(candidates);
    backTrack(candidates, result, new ArrayList<Integer>(), target, 0, d); return result;
} private void backTrack(int[] candidates, List<List<Integer>> result, ArrayList<Integer> list, int remain, int start, int d) { if (remain == 0) { if (Math.abs(list.get(0) - list.get(1)) <= d) { count++;
        } total++;
        result.add(new ArrayList<>(list));
    } else { for (int i = start; i < candidates.length; i++) {
            list.add(candidates[i]);
            backTrack(candidates, result, list, remain - 1, i + 1, d);
            list.remove(list.size() - 1);
        }
    }
}

#笔试题目##春招#
全部评论
第一题,两两组合后最大的不一定是第一个数加最后一个数。
点赞 回复 分享
发布于 2019-04-03 21:34
1. MAX不一定是排好序的数组首和尾相加(e.g [1,3,4,5,6,7] 1+7<3+6) 同理MIN
点赞 回复 分享
发布于 2019-04-03 21:35
第三题split的逗号后面还得有个空格
点赞 回复 分享
发布于 2019-04-03 21:41
第一题是不是就是找排序后数组的 第一个和最后一个的和、第二个和倒数第二个的和……中的最大数和最小数做差?
点赞 回复 分享
发布于 2019-04-03 21:44

相关推荐

ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务