京东 2021/08/21 校招 测试开发 笔试 完整题目

30 道单选题(60分),2 道编程题(40分),编程题都是 ACM 模式需要自己写输入输出,一共 2 小时

对角线上的邻居

时间限制: 3000MS
内存限制: 589824KB

题目描述

小明搬进了一个新的小区里,对里面的环境和住户都比较陌生,小明发现这个小区的房屋是一个网格型排列,所有房屋在一个网格状的地图上。小区一共有 n 户人家,我们假设每户人家的位置表示为(x,y)。小明觉得如果两家是邻居的话,他们的关系应该会更好一些。现在我们定义当两户人家处在相同的任意一个对角线上的时候,则两户人家为邻居。现在小明想要统计这样的邻居一共有多少对。

输入描述

第一行 1 个整数n,,表示有 n 户人家。

接下来 n 行,第 i 行包含两个整数,表示第 i 户人家的位置为()。

输出描述
一行一个整数,表示有多少对邻居。

样例输入

5
3 4
4 5
5 6
4 7
3 8

样例输出

6

提示

对于样例输入,以下几对人家均为邻居
(3,4)与(4,5)
(3,4)与(5,6)
(4,5)与(5,6)
(5,6)与(4,7)
(5,6)与(3,8)
(4,7)与(3,8)

73%时间超限

import java.util.Scanner;
// 73% 时间超限,尝试了一下使用boolean[][] flag = new boolean[n][n];用来记录是否判断过,结果直接 7% 内存超限。
public class jd1 {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] nums = new int[n][2];
        for (int i = 0; i < n; i++) {
            nums[i][0] = sc.nextInt();
            nums[i][1] = sc.nextInt();
        }
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            for (int j = i+1; j < nums.length; j++) {
                if(Math.abs(nums[i][0] - nums[j][0]) == Math.abs(nums[j][1] - nums[i][1])){
                    count++;
                }
            }
        }
        System.out.println(count);
    }
}

中庸的数

时间限制: 3000MS
内存限制: 589824KB

题目描述

有若干个数形成一个可重集合,它们中很多都想做一个中庸的数,即既不是集合中最大的(或之一),也不是集合中最小的(或之一)。显然,不可能满足所有数。好在还是有一些数并不介意这一点。你需要从这些数中选出一个可重的子集,该子集中介意成为最值的数都得到满足(指不能成为子集中的最值)。请计算可以取的最大可重子集的大小。

输入描述

第一行一个整数 n,1 <= n <= 100000
后面 n 行,每行两个整数 x, y,x <= 1000000000,y 为 0 或 1。x 表示该数的值,y 为 1 表示该数不介意成为最值,为 0 则表示介意。

输出描述

一个整数,表示可取的最大的子集大小

样例输入

5
4 1
2 0
8 1
9 0
5 0

样例输出

3

90%答案错误的代码

import java.util.Arrays;
import java.util.Scanner;
// 通过 90 % 答案错误
public class jd2 {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] nums = new int[n][2];
        for (int i = 0; i < n; i++) {
            nums[i][0] = sc.nextInt();
            nums[i][1] = sc.nextInt();
        }
        Arrays.sort(nums, (a,b)-> a[0]-b[0]);
        int i = 0, j = nums.length - 1;
        for (; i < n; i++) {
            if(nums[i][1] == 1){
                break;
            }
        }
        for (; j >= 0; j--){
            if(nums[j][1] == 1){
                break;
            }
        }
        System.out.println(Math.max(j - i + 1, 0));
    }
}
#京东##笔经#
全部评论
哎 GG
点赞 回复 分享
发布于 2021-08-21 21:06
5 4 1 2 0 8 1 9 0 5 0 为啥这个不是5 ,所有元素放进去不也满足的吗
点赞 回复 分享
发布于 2021-08-21 21:48
第一题一样,我用的广搜变形ac了,第二题读不明白就交了。
点赞 回复 分享
发布于 2021-08-21 22:30

相关推荐

10-30 21:47
已编辑
广东财经大学 web前端
小红书 实习 9-10k
哇咔咔嘞:先签小厂,然后去实习,春招找到好的再违约
点赞 评论 收藏
分享
有个问题,现在大家都在劝退客户端,客户端岗位也很稀缺,那为什么不去呢,就算干一两年被裁了也可以社招进去吧,人不是同样很少,社招岗位也户会急招人的吧😋😋😋
Runquicky:在前三年客户端还好,主要是因为大厂都在扩张状态。这两年已经不建议了,大厂都只剩维护的需求了,没新功能,自然也没那么多需求。新人进去一两年被裁会怎样很难说了。
点赞 评论 收藏
分享
CISYA:啊?这么溜的简历会难?
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
5 18 评论
分享
牛客网
牛客企业服务