【发布时间】:2020-04-24 11:38:26
【问题描述】:
在《Cracking The Coding Interview》一书中
有一个例子:
打印方程的所有正整数解
a^3 + b^3 = c^3 + d^3其中
a、b、c和d是介于1和1000之间的整数。
书中说“只有一个人可以工作”,但我不明白。
正如我所见,只要所有这些变量都相等,它就会起作用
例子:
a = 1, b = 1, c = 1, d = 1
a = 2, b = 2, c = 2, d = 2
a = 3, b = 3, c = 3, d = 3
【问题讨论】:
-
是的,你是对的,肯定有多种解决方案。你确定这些都是书中的要求吗?还是
only one could work的上下文真的是你的意思? -
我认为您是在询问书中的一句话“只有一个人可以工作”,但是如果没有上下文,很难做到这一点。显然,这并不意味着只有一种解决方案(或者这是非常错误的),因为有很多解决方案。
-
我找到了这本书,当你找到解决方案时,你错过了关于打破
d循环的上下文,因为只有一个d值可以工作(对于给定的 @987654333 @、b、c)。 -
如果我们排除琐碎的解决方案,即如果我们需要
a != c, a !=d, b != c, b != d,该怎么办? -
关于 d 循环,似乎没有必要迭代直到找到 d 值。包含所有 d^3 解决方案的简单哈希图会更快(检查 a^3 + b^3 - c^3)
标签: algorithm