【发布时间】:2020-10-14 09:27:49
【问题描述】:
我目前正在准备面试考试(试图找到我的第一份工作)。 我很难找到这个问题的算法。我很想得到一些帮助:
给定第一行和最后一行的总和以及一个包含 Nx2 矩阵中所有列总和的数组,求矩阵中每个单元格的值,其中每个单元格为 0 或 1。
提前致谢!
【问题讨论】:
-
这不是关于编程的问题。它相当一个谜。先用纸笔解决,再写代码应该是小菜一碟
-
要么我错过了什么,要么有独特解决方案的情况很少见。您需要找到一种解决方案还是独特的解决方案?
-
顺便说一句,根据我有限的面试经验,我想说他们想看看你如何解决问题,他们不希望你知道解决方案。希望看到您可以开发解决方案而不是测试您是否可以记住解决方案
-
一个朴素的算法将是递归的,假设有一个解决方案,随机选择和条件检查。您遍历第 n 列的两个单元格的所有可能组合,如果没有通过行总和检查(当前总和高于预期总和),则返回一列以测试下一个组合的 n-1 列。否则,使用第 n 列传递的第一个组合移动到 n+1。如果存在,这只会找到一种解决方案
-
等等,你确定矩阵不是 2xN(2 行,N 列)吗?