题目:
给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。
水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。
反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。
解答:
public class LeetCode20190803 {
public int[][] flipAndInvertImage(int[][] A) {
for (int i = 0; i < A.length; i++) {
int start = 0, end = A[i].length - 1;
while (start < end) {
if (A[i][start] != A[i][end]) {
start++;
end--;
} else {
A[i][start] = A[i][start] == 1 ? 0 : 1;
A[i][end] = A[i][end] == 1 ? 0 : 1;
start++;
end--;
}
}
if (start == end) {
A[i][start] = A[i][start] == 1 ? 0 : 1;
}
}
return A;
}
package sampling.method;
import org.apache.commons.math3.linear.Array2DRowRealMatrix;
import org.apache.commons.math3.linear.LUDecomposition;
import org.apache.commons.math3.linear.RealMatrix;
public class MathMethod {
public static void main(String args[]){
double b [][] = new double[5][5];
for(int i = 0; i < b.length; i++) {
b[i][i] = 1;
}
//将数组转化为矩阵
RealMatrix matrix = new Array2DRowRealMatrix(b);
System.out.println("创建的数组为:\t"+matrix);
//获取矩阵的列数 getColumnDimension()
System.out.println("矩阵的列数为:\t"+matrix.getColumnDimension());
//获取矩阵的行数
System.out.println("矩阵的行数为:\t"+matrix.getRowDimension());
//获取矩阵的某一行,返回,仍然为矩阵
System.out.println("矩阵的第一行为:\t"+ matrix.getRowMatrix(0));
//获取矩阵的某一行,返回,转化为向量
System.out.println("矩阵的第一行向量表示为:\t"+ matrix.getRowVector(1) );
//矩阵的乘法
double testmatrix[][] = new double[2][2];
testmatrix[0][0] = 1;
testmatrix[0][1] = 2;
testmatrix[1][0] = 3;
testmatrix[1][1] = 4;
RealMatrix testmatrix1 = new Array2DRowRealMatrix(testmatrix);
System.out.println("两个矩阵相乘后的结果为:\t"+testmatrix1.multiply(testmatrix1) );
//矩阵的转置
System.out.println("转置后的矩阵为:\t"+testmatrix1.transpose());
//矩阵求逆
RealMatrix inversetestMatrix = inverseMatrix(testmatrix1);
System.out.println("逆矩阵为:\t"+inversetestMatrix);
//矩阵转化为数组 getdata
double matrixtoarray[][]=inversetestMatrix.getData();
System.out.println("数组中的某一个数字为:\t"+matrixtoarray[0][1]);
}
//求逆函数
public static RealMatrix inverseMatrix(RealMatrix A) {
RealMatrix result = new LUDecomposition(A).getSolver().getInverse();
return result;
}
}
Jar包链接https://mvnrepository.com/artifact/org.apache.commons/commons-math3/3.6.1