繁体   English   中英

JS:我有一个测试任务,我不知道怎么做。 你能告诉我解决这个任务的选项是什么吗?

[英]JS: I got a test task, I don’t know how to do it. Can you tell me what are the options for solving this task?

公司有N人。 他们中的许多人是朋友。 此外,有趣的事实是朋友的朋友也是朋友。 您需要了解公司中有多少朋友有某个特定的人。

输入数据

函数应接收下一个参数: N - 公司人数 S - 特定人数 矩阵 N 行包含 N 个由 1 和 0 组成的数字。 并且位于第 i 行和第 j 列的单位确保编号为 i 和 j 的人 - 朋友,而 0 - 表示不确定性。

输出数据

函数应该返回带有 S 编号的人的某些朋友的编号,记住可传递的友谊。

Example1:

N = 3 
S = 1
Matrix =    0  1  0
            1  0  1
            0  1  0
Result: 2


Example2:

N = 5 
S = 2
Matrix =    0  0  0  0  0 
            0  0  1  0  0
            0  1  0  0  1
            0  0  0  0  1
            0  0  1  1  0 
Result: 3

由于这显然是一个家庭作业问题,我不会给你代码,你可以直接复制粘贴。 不过,我会提供指导。 两个人之间的每一次友谊都代表着他们之间的一种联系,您可以使用快速联合来生成友谊组件。 然后,你可以找到这个人所在的组件的大小,减去1,这就是他有多少朋友。

或者,如果您只需要查找一个人的朋友,您可以维护一个朋友数组,并使用该人的直接朋友进行初始化。 然后,您可以递归到每个朋友上,如果他们有任何不在数组中的朋友,则将该人添加到数组中并递归到他们上。 这将比第一种方法更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM