请教 两道Epic OA新题 Free Piece 和 Page Break

原帖地址:一亩三分地

有两道新题库的题不会,想请教下。把我收集到的相关面经列在下面了
第1个Free Piece ,不明白题意。假设在矩阵上的某个空位0 放上了自己的棋子1, 走啊走啊,走到某个位置,其上下左右有2,就可以把这个2算做capture?如果直接邻居有多个2,算capture几个呢?capture一旦发生之后,棋子1是不是还可以继续走呢?

第2个 Page Break
只想到暴力。。先扫一遍找出全是white的rows。再扫一遍,在[i, i+1000]的范围内看,如果存在可以截断的位置,就在最大可以截断的位置截断;如果有连续1000行black rows,就强制在i+1000处截断
不知道对不对,想请教下更好的解法

1 Free Piece版本1:你和朋友下棋,你碰掉了一个棋子,俩人都不知道原来放哪的,朋友说你可以随便摆回去。输入一个二维矩阵,0表示空位,1表示自己的棋子,2表示对手的。然后棋子吃子的原则是能横着或竖着走,不能对角线,不能跨棋子,碰到对手就能“capture”。问找一个点能“capture”最多对手棋子的点
版本2: chessboard[][], return the colrow of the free square that created with all 1’s, which contains most 2’s. The chessboard[][] initialized with 0-space, 1-me, 2-component
版本3:a和b玩游戏,a可以移动任意步去吃b,要求不能跳跃,然后求能使对方吃最多的位置
2 Page Break
版本1:Write a function which takes an input for a double dimensional matrix.Each page is 1000 pixels wide and 1000 pixels high. A black pixel is represented by 1 and a white pixel by 0.Return an answer set of array of row numbers for appropriate page breaks.A page break would ideally be a row with all white pixels.If the page break is encountered more 1000 rows from the last break then the page break should be forcefully taken 1000 rows from the last break.
版本2:输入是一个matrix[][](matrix.length=100, matrix[0].length不确定),代表一副黑白图,1代表黑,0代表白。然后告诉一张打印用的纸是100*100, 问在图片的哪些行做分割,才能在最少的纸上打印出来(返回分割的行数),还有一个要求是最好能在全0那一行分割
版本3:一个黑白image,width 固定,height可能很大,把它分页打印出来,每个page有固定的width (和image width相同)和height, 但是每页在分隔的时尽量选用image里全白的一行。
版本4: 给一个m*n的2D matrix,1代表黑字,0代表白字 假设其为图片,现在需要打印它。n恰好是纸宽,但一张纸长度只有1000像素,所以需要写function 返回一个array,即需要在m坐标下哪个index截断图片。截断那行不能有黑字,如果有黑字,就在它上一行截断。先找到 (current index, current index + 1000) 然后从后往前逐行判断