为什么我的方法计算从2D数组中删除一些随机元素的最小步数错误?

时间:2013-10-05 14:52:06

标签: arrays multidimensional-array

我有一个2D数组,其中放置了一些相同的元素,比如说Xs,在随机位置。鉴于我可以通过在一个步骤中删除整个行或列来删除所有这些X的条件,我必须计算删除所有这些X所需的最小步骤数。作为一个例子,我可以在2个步骤中删除位置(0,0),(1,0)和(0,1)的Xs,对于2x2数组[1表示(0,0),(0, 1)和1(1,0)]

我自己想出了一种方法 - 我将x和y坐标存储在两个独立的数组中,然后计算两者中不同的坐标。比较它们,具有最小不同元素的那个是答案,即它是所需步骤的最小数量。

我已经检查了许多不同的输入,我的答案似乎每次都是正确的。但是,我的导师说这个答案是错误的,尽管他不会解释原因。所有他说的是它没有针对特定的测试用例,但他不会提到它。

因此,我正在寻求帮助。如果你能用这种方法找到失败的话,请告诉我,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

假设我理解你的

  

我将x和y坐标存储在两个独立的数组中,并且   然后统计两者中的不同坐标。比较两者   它们是具有最小不同元素的那个,是答案,即   它是所需的最小步骤数。

算法正确,然后一个简单的反例是:

  [[1, 1, 1],
   [1, 0, 0],
   [1, 0, 0]]

1所在的位置,您将拥有三个不同的x坐标和三个不同的y坐标,但显然它只需要两次删除操作。