【俄罗斯方块的题】
可以参考:https://blog.csdn.net/weixin_44337445/article/details/108971706
思路:看能移动多少步数,数min step。然后把矩阵拼出来
心得:妈的,网上有答案都没查到。搜答案的火候不到家啊。可能准备时间太仓促了吧。可以重新再投吗?
public char[][] figureUnderGravity(char[][] matrix) {
if (matrix == null || matrix.lenght == 0 || matrix[0].length == 0) {
return matrix;
}
int m = matrix.length;
int n = matrix[0].length;
int minstep = Integer.MAX_VALUE;
for (int j = 0; j < n; j++) {
int i = 0;
while (i < m) {
while (i < m && matrix[i][j] != 'F') {
i++;
}
if (i == m) continue;
while (i < m && matrix[i][j] == 'F') {
i++;
}
if (i < m) {
int cnt = 0;
while (i < m && matrix[i][j] != '#') {
i++;
cnt++;
}
minstep = Math.min(minstep, cnt);
}
}
}
if (minstep == Integer.MAX_VALUE || minstep == 0) {
return matrix;
}
for (int i = m - 1; i < minstep; i--) {
for (int j = 0; j < n; j++) {
if (matrix[i - minstep][j] == 'F') {
matrix[i][j] = 'F';
matrix[i - minstep][j] = '.';
}
}
}
reutrn matrix;
}
【矩阵消消乐查询】
可以参考:https://www.1point3acres.com/bbs/interview/ebay-software-engineer-563612.html
思路:用的两个hashset存disabled row 和 column
rowset, colset
for (rowset) { //124
for(colset) { //29
//是的吧,都是在有效范围内的for循环。有道理。
}
}
心得:又没想到hashset,怎么又忘了?