0
は私が最大要素値を保存して行列を減らすにはどうすればよいですか?
int[][] matrix = {
// 0 1 2
{0,0, 0,0, 0,0}, // 0
{0,1, 0,0, 0,0},
{1,1, 0,0, 0,0}, // 1
{0,0, 0,0, 0,1}
};
int newCellSize = 2;
は、私は、セルの最大値を維持しながら、それを減らしたい行列があるとします。例えば、
matrix
=>
int[][] reducedMatrix = {
{1, 0, 0},
{1, 0, 1}
};
はどのように私はそれを行うことができますか? matrix
要素を反復処理し、それらをreducedMatrix
セルにマップする方法は?ここで
は私の試みです:
private static int[][] reduceMatrix(int[][] matrix, int cellSize) {
int a = (int)ceil((double)matrix.length/cellSize);
int b = (int)ceil((double)matrix[0].length/cellSize);
int[][] reduced = new int[a][b];
for(int i=0; i < matrix.length; i++){
for(int j=0; j < matrix[i].length; j++){
int n= i/cellSize;
int m= j/cellSize;
int elem = matrix[i][j];
if(elem > 0){
reduced[n > 0 ? n : 0][m > 0 ? m : 0]=elem;
}
}
}
return reduced;
}
は、あなたがこれまで試したどのような私たちを見ますか? –
これまでのところ、私はアルゴリズムを開発するためにどの点から始めるべきか分かりません。 – Finkelson
これは2 * 3に縮小された4 * 6マトリックスです。ここでどのくらい正確にセルを定義しますか? – vish4071