Java 返回添加到电路板的新单元数
我有一个二维数组列表,其维度为2行和2列: | 0| 1| +---+---+ 0 | 0| 0| +---+---+ 1 | 0| 0| +---+---+ 和方法Java 返回添加到电路板的新单元数,java,multidimensional-array,Java,Multidimensional Array,我有一个二维数组列表,其维度为2行和2列: | 0| 1| +---+---+ 0 | 0| 0| +---+---+ 1 | 0| 0| +---+---+ 和方法expandBoard(int行,int列),它用给定的坐标展开board。例如: expandBoard(4, 3){ | 0| 1| 2| 3| +---+---+---+---+ 0 | 0| 0| 0| 0| +---+---+---+---+ 1 | 0| 0
expandBoard(int行,int列)
,它用给定的坐标展开board。例如:
expandBoard(4, 3){
| 0| 1| 2| 3|
+---+---+---+---+
0 | 0| 0| 0| 0|
+---+---+---+---+
1 | 0| 0| 0| 0|
+---+---+---+---+
2 | 0| 0| 0| 0|
+---+---+---+---+
3 | 0| 0| 0| 0|
+---+---+---+---+
4 | 0| 0| 0| 0|
+---+---+---+---+
}
现在,有三行被添加到了电路板上,还有两列(addedRows=3,addedCols=2
)。如何确定因扩展而创建的新单元的总数
public int expand(int row, int col){
int rowsCount = 0;
int colsCount = 0;
int addedRows = 0;
int addedCols = 0;
int cols = getPhysicalCols();
if ((minRow <= row && maxRow >= row)
&& (minCol <= col && maxCol >= col)) {
return 0;
}
else {
if (row < minRow) {
while (row != minRow) {
addRowTop();
rowsCount++;
addedRows++ ;
}
if (col < minCol) {
while (col != minCol) {
addColLeft();
colsCount++;
addedCols++;
}
}
if (col > maxCol) {
while (maxCol != col) {
addColRight();
colsCount++;
addedCols++;
}
}
}
return (addedRows * cols) + getPhysicalRows() + getPhysicalCols();
}
public void addRowTop(){
ArrayList<T> rowLine = new ArrayList<T>();
myBoard.add(0, rowLine);
this.minRow -= 1;
origCol = maxCol - minCol;
for(int col = 0; col <= origCol; col++){
rowLine.add(col, this.element);
}
}
public int getPhysicalRows(){
return myBoard.size();
}
public int getPhysicalCols(){
return myBoard.get(myBoard.size() - 1).size();
}
public int expand(int行,int列){
int rowsunt=0;
int colscont=0;
整数加法=0;
整数加法=0;
int cols=getPhysicalCols();
如果((minRow=行)
&&(minCol=col){
返回0;
}
否则{
如果(行<最小行){
while(row!=minRow){
addRowTop();
rowsCount++;
addedRows++;
}
if(col最大列){
while(maxCol!=col){
addColRight();
colscont++;
adddcols++;
}
}
}
return(addedRows*cols)+getPhysicalRows()+getPhysicalCols();
}
public void addRowTop(){
ArrayList行线=新建ArrayList();
添加(0,行线);
this.minRow-=1;
origCol=最大值-最小值;
对于(int col=0;col如果现有矩阵是M行乘以N列,并且要添加x行和y列,则要创建的单元格数等于:
(M + x) * (N + y) - (M * N)
也就是说,结果矩阵(M+x)*(N+y)
的维数减去原始矩阵(M*N)的维数
请输入相关代码。我假设M和N都来自原始2d Arraylist,即在扩展之前?@LukeMWillisThank you!我很好奇为您计算公式有多容易?@John很乐意帮忙!做了很多这类事情后,我能够相当快地解决它,但这一切都需要经验。您(还有,如果我回答了你的问题,请接受我的回答)当然!再次感谢你!