谷歌在职跳槽挂经

第一题 【1, 2, 3, 4, 5, 6】一个数组 6个不同的数字排列成2排,规则是前面的要比后面的小,左边的数字要比右边的小,几种排列方式啊。有什么好办法吗。比如:
【4, 5, 6】
【1, 2, 3】

我能想的是排列所有组合 然后根据规则去掉不符合的,但是效率太低。有其他的好办法吗?

第二题:构建一个maze,没有任何条件,反复问了面试官,就说你随意建,只要好玩的maze就行。我说怎么样算是好玩,他说比如来回绕啦,让玩家觉得有趣,我说这个算是个人主观体验吧,有什么具体的条件吗,面试官一脸困惑的看着我,说你就建maze嘛,我也困惑的看着他。

##两个面试官都是国男。

这题的output就这一个吗?还是有别的?

这题参考 谷歌迷宫生成算法题目

这只是一个,其他的只要符合都可以
【2,5, 6】
【1, 3, 4】
或者

【4, 5, 6】
【1, 2, 3】

或者
【3, 5, 6】
【1,2, 4】

所有符合要求的排列是有限的,最小的数字只能在左侧下方,最大数字在右侧上方,其他的4个位置满足后面的大于前面的,左侧的小于右侧的,必须是同一colum的比较,比如这里是3 大于1, 5 大于2, 6 大于4,你不能错开比较3 和2, 或者6 和 1。

3 > 1, 5 > 2, 6 > 4
and 6 > 5 and 5 > 3 , 4 > 2 and 2 > 1

比如?

你可以试一下排列这两列数字,肯定不是所有的排列都符合。麻烦自己组合一样,一共好像有5组数字符合。

人家是想理解你的题意,你如果只给一个例子,没法理解

我又加了一些解释在上面。

这个比较大小一定是在同一行 和 同一列 不能cross colum。

老师啊,我当时也想用路径来得出一共又多少个valid的矩阵,但是面试官说这样比较复杂,他说可以先全排列,然后在判断valid的矩阵。我感觉这不是最优解,你有别的好的办法吗?

不是只要生成一个valid的迷宫就可以了么
你的解法必须要有效率
你看了我录制的视频吗?解法只要一次就可以生成valid的迷宫