我有一个日志文件,格式如下:
3
1 2 3
1 2 3
1 2 3
1 2 3
4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
Run Code Online (Sandbox Code Playgroud)
单个数字表示矩阵的宽度,因为它们始终具有相同的高度.并且在同一日志文件中可以有多个矩阵.我不想将矩阵数据解析成数组.我阅读了这些行scala.io.Source.fromFile(f).getLines.mkString,但我正在努力填充数组.
for(i <- 0 to 3) {
for(j <- 0 to N-1) {
matrix(i)(j) = ...
}
}
Run Code Online (Sandbox Code Playgroud)
如果这些行的索引方式与我想要的矩阵一样,那就不会那么难了.但是当行(n)包含空格,换行符时..我做错了什么?
我正在编写一个算法来解决摩天大楼难题:
摩天大楼的谜题将数独的行和列限制与外部线索值相结合,外部线索值将每行或每列数字重新设想为充满不同高度的摩天大楼的道路.数字越大表示建筑物越高.
要解决摩天大楼之谜,您必须将1到5或1放置到任何大小的拼图中,每次放入每一行和每列,同时还要解决每个给定的摩天大楼线索.
要了解摩天大楼的谜题,您必须想象您放入网格中的每个值都代表了这个楼层的摩天大楼.因此,1楼是1层楼的摩天大楼,4楼是4层楼的摩天大楼.现在想象一下,你站在网格之外,其中一条线索数字是回到网格中.该线索数字告诉您从该点可以看到多少个摩天大楼,仅沿着线索所在的行或列,以及从线索的角度来看.较高的建筑物总是掩盖较低的建筑物,因此换句话说,较高的数字总是隐藏较低的数字.
所有的基本技术都已实现并正常工作,但我已经意识到,对于更大的难题(5x5>),我需要某种递归算法.我找到了一个体面的工作python脚本,但我并没有真正关注它除了解决基本线索之外的实际操作.
有谁知道解决这些难题的正确方法,或者任何人都能揭示上面代码中的要点?