Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谷歌Foobar:释放兔子囚犯_Java_Python - Fatal编程技术网

Java 谷歌Foobar:释放兔子囚犯

Java 谷歌Foobar:释放兔子囚犯,java,python,Java,Python,我正在谷歌Foobar上工作,我对“释放兔子囚犯”感到非常困惑。我不是在寻找代码,但我可以从完成它的任何人那里获得一些见解。首先,问题是: 释放兔子囚犯 你需要在兰姆达指挥官的空间之前释放兔子囚犯 车站爆炸了!不幸的是,司令官对这件事非常小心 她价值最高的囚犯-他们都被单独关押, 最大安全单元。通过在每个单元中插入钥匙来打开单元 控制台,然后同时按下每个控制台上的打开按钮。 按下打开按钮时,每把钥匙都会打开相应的锁 在牢房里。因此,所有控制台中的键的并集必须是 所有的钥匙。该方案可能需要一个密钥

我正在谷歌Foobar上工作,我对“释放兔子囚犯”感到非常困惑。我不是在寻找代码,但我可以从完成它的任何人那里获得一些见解。首先,问题是:

释放兔子囚犯 你需要在兰姆达指挥官的空间之前释放兔子囚犯 车站爆炸了!不幸的是,司令官对这件事非常小心 她价值最高的囚犯-他们都被单独关押, 最大安全单元。通过在每个单元中插入钥匙来打开单元 控制台,然后同时按下每个控制台上的打开按钮。 按下打开按钮时,每把钥匙都会打开相应的锁 在牢房里。因此,所有控制台中的键的并集必须是 所有的钥匙。该方案可能需要一个密钥的多个副本 给不同的仆从

控制台之间的距离足够远,因此需要一个单独的仆从 每一个。幸运的是,你已经释放了一些兔子来帮助你 -更妙的是,你在担任拉姆达指挥官助理的时候偷了钥匙。问题是,你没有 知道在哪些控制台上使用哪些键。控制台已编程 知道每个仆从都有哪些钥匙,防止有人 偷了所有的钥匙并盲目使用。路旁有路标 控制台上显示有多少仆从有一套钥匙 控制台。你怀疑Lambda指挥官有系统的方法 决定给每个仆从哪些钥匙,以便他们可以使用 控制台

你需要弄清楚拉姆达指挥官过去的计划 分发钥匙。你知道有多少奴才有钥匙,有多少 控制台由每个单元提供。你知道Lambda司令部不会 发出超过需要的密钥(超出密钥分发范围) 方案要求),并且您需要尽可能多的带钥匙的兔子 是打开电池的控制台

考虑到可用的兔子数量和所需的锁数量 要打开单元格,请编写一个函数应答(num_buns,num_required),其中 返回如何分发密钥的规范,以便 需要num_的兔子可以打开锁,但不需要(num_)组 -1)兔子可以

每个锁从0开始编号。钥匙的编号是一样的 当锁打开时(对于重复的钥匙,数字会重复, 因为它打开了相同的锁)。对于给定的兔子,他们得到的钥匙是 表示为键的数字的排序列表。包罗万象 在这些兔子中,最后的答案由一个排序的 每个兔子的钥匙清单。按字典顺序查找 这样的密钥分配最少——也就是说,第一只兔子应该有 从0开始按顺序设置关键帧

num_buns将始终介于1和9之间,并且num_required将始终为 介于0和9之间(包括两者)。例如,如果您有3个 只需要一只兔子就可以打开牢房 每只兔子都有一把相同的钥匙,这样3只兔子中的任何一只都可以 打开它,就像这样:[[0],[0],[0],]如果你有两个兔子和 如果他们都需要打开电池,他们会收到不同的信号 钥匙(否则它们实际上并不都是必需的),以及 答案如下:[[0],[1],]最后,如果你有3个 需要两个兔子打开电池,然后三个兔子中的任意两个打开电池 兔子应该拥有打开牢房所需的所有钥匙,但没有 一只兔子就能做到。因此,答案是:[
[0,1],[0,2],[1,2],]

语言文字 要提供Python解决方案,请编辑solution.py以提供Java 解决方案,编辑solution.java

测试用例 投入: (int)num_buns=2 (int)num_required=1输出: (int)[[0],[0]]

投入: (int)num_buns=5 (int)num_required=3输出: (int)[[0,1,2,3,4,5],[0,1,2,6,7,8],[0,3,4,6,7,9],[1,3,5,6,8,9],[2,4,5,7,8,9]]

投入: (int)num_buns=4 (int)num_required=4输出: (int)[[0]、[1]、[2]、[3]]

我不明白为什么
回答(5,3)=[[0,1,2,3,4,5],[0,1,2,6,7,8],[0,3,4,6,7,9],[1,3,5,6,8,9],[2,4,5,7,8,9]
。在我看来,
[[0]、[0,1,2]、[0,1,2]、[1]、[2]
完全满足说明中列出的要求。我不知道为什么会有值大于num_required-1的键

我想到的一种可能性是,有一些不成文的规则规定,所有的仆从/兔子都需要相同数量的钥匙,并且每个钥匙只能有num_。但是,如果是这样的话,
[[0,1,2],[0,1,2],[0,3,4],[1,3,4],[2,3,4]
就可以了

接下来,我想,无论有多少个控制台,可能需要同时使用所有num_所需键的规则都超出了0、1和2。也就是说,您应该能够使
[6,7,8]
以及
[0,1,2]
。然而,这一要求将被打破,因为第一只兔子没有这些数字


我卡住了。任何提示都将不胜感激

我想你错过了上面说的那部分

但是没有一组(需要数量-1)兔子可以。

我可以进一步解释我的解决方案,但我会破坏乐趣。(我是该回购协议的所有者)。 让我们试试你的答案

[[0]、[0,1,2]、[0,1,2]、[1]、[2]]


你的控制台是3台。兔子2可以自己打开,兔子3也可以自己打开->不符合规则

啊!非常感谢你!我有种感觉我错过了一些东西。这是一条奇怪的规则。它还说,控制台之间的距离足够远,eac需要一个单独的仆从