9-10 京东笔试的简单理解—&mdash请指教

首先说一下题目吧。题目大意是给你N 个点,M条边的图。 其中需要将这些点分布成多个集合群。

这些集合要求 属于同一个集合的点互相不能连接,不同集合的点全部可以连接。。(这点很容易搞混)。

其中的一个测试例子如下:
2     //表示有两组数据
5 7   //5表示 接下有5个点,7表示7个边
1 3    // 1 到 3 有边
1 5    // ...
2 3
2 5
3 4
4 5
3 5
4 3    //4表示 4个点,3个边
1 2
2 3
3 4

图片说明
第二个例子比较直接就不分析了。 从第一个例子中可以看出 1 2 4 属于同一个集合, 3 、 5 分别属于一个集合。
并且集合中的点是没有连线的。好吧上边都是背景知识。。。我自己找到的规律是:
这个图用矩阵表示出来后是这样的:
0 0 1 0 1
0 0 1 0 1
1 1 0 1 1
0 0 1 0 1
1 1 1 1 0
从矩阵中可以看出: 1 2 4 的矩阵表示都 0 0 1 0 1. 是一样的。
我的理解是: 1 2 4 因为是同一个集合,所以他们的连接情况是一样,也就是矩阵表示是一致的。同时每一行中为0的元素表示它们之间没有连接,她们必定是属于一个集合的(而这些集合又是有一样的矩阵表达形式)。

所以问题转化为一个很简单的方式:从矩阵的第一行开始,找到第一行中为0的对应的哪一行进行比较,这两行是否一致。(因为如果为0,表示它们之间没有连接,是出于一个集合中不然就是矛盾。)。

举个例子。我遍历第一行 0 0 1 0 1,其中排除自己的第一个0,剩下两个0是 2 和 4 。那么我就用 第1行 和 第2行与 第4行进行比较,是否一致,不一致输出NO.遍历完全部一致那么输出Yes.

(1)首先这题我是AC的,感觉应该思路没问题。如果有问题请举出具体的反例。
(2)文笔不好见谅

#笔试题目##京东#
全部评论
其实,你这种找规律的思想,背后的数据结构是:并查集。
点赞 回复 分享
发布于 2018-09-10 10:38
666666
点赞 回复 分享
发布于 2018-09-10 10:22
简单易懂的方法
点赞 回复 分享
发布于 2018-09-10 10:40
优秀!
点赞 回复 分享
发布于 2018-09-10 11:06
我也是这么写的。。。不过不知道怎么证明
点赞 回复 分享
发布于 2018-09-10 11:12
你好,请问你京东的职位申请上目前显示笔试做完了吗?为什么我昨天笔试过后,今天显示未笔试,好方😔
点赞 回复 分享
发布于 2018-09-10 11:18
只用遍历第一行吗?
点赞 回复 分享
发布于 2018-09-10 12:04

相关推荐

程序员猪皮:看不到八股什么意思
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务