搜狗 矩阵元素相乘
2016-07-29 15:06
148 查看
A[n,m]是一个n行m列的矩阵,a[i,j]表示A的第i行j列的元素,定义x[i,j]为A的第i行和第j列除了a[i,j]之外所有元素(共n+m-2个)的乘积,即x[i,j]=a[i,1]a[i,2]…a[i,j-1]…*a[i,m]*a[1,j]*a[2,j]…*a[i-1,j]*a[i+1,j]…*a[n,j],现输入非负整形的矩阵A[n,m],求MAX(x[i,j]),即所有的x[i,j]中的最大值。
输入描述:
第一行两个整数n和m。之后n行输入矩阵,均为非负整数。
输出描述:
一行输出答案。
输入例子:
3 5
5 1 8 5 2
1 3 10 3 3
7 8 5 5 16
输出例子:
358400
输入描述:
第一行两个整数n和m。之后n行输入矩阵,均为非负整数。
输出描述:
一行输出答案。
输入例子:
3 5
5 1 8 5 2
1 3 10 3 3
7 8 5 5 16
输出例子:
358400
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while (scan.hasNext()) { String[] in = scan.nextLine().split(" "); int n = Integer.valueOf(in[0]); int m = Integer.valueOf(in[1]); int[][] matrix = new int [m]; for (int i = 0; i < n; i++) { String[] mIn = scan.nextLine().split(" "); for (int j = 0; j < m; j++) { matrix[i][j] = Integer.valueOf(mIn[j]); } } long max = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { long res = sovle(matrix,n,m,i,j); if (res > max) { max = res; } } } System.out.println(max); } scan.close(); } private static long sovle(int[][] matrix,int n,int m,int x,int y) { long res = 1; for (int i = 0; i < m; i++) { if (i == y) { continue; } res *= matrix[x][i]; } for (int i = 0; i < n; i++) { if (i == x) { continue; } res *= matrix[i][y]; } return res; } }
相关文章推荐
- 矩阵元素相乘----搜狗2016研发工程师编程题
- 名企笔试:搜狗2016研发工程师笔试(矩阵元素相乘)2017-03-13 算法爱好者
- 矩阵元素相乘
- 矩阵元素相乘
- 搜狗2016研发工程师笔试(矩阵元素相乘)
- JAVA--第四周实验--任务4--求矩阵元素相乘(编程思想)
- 华为机试---矩阵元素相乘
- 搜狗2016招聘笔试题<矩阵元素相乘>Java代码(
- 2016搜狗:矩阵元素相乘
- 矩阵相乘-c++代码实现及运行实例结果
- 矩阵相乘strassen-c++代码实现及运行实例结果
- SDUT-1172-->C语言实验——矩阵下三角元素之和
- 矩阵相乘 指针指针 网上看到的一道题目
- MATLAB中对矩阵元素操作的for循环优化方法
- Problem B: C语言习题 矩阵元素变换
- POJ 3744 Scout YYF I (矩阵相乘+概率DP)
- 使用指针数组实现这两个矩阵的相乘
- GPU计算矩阵相乘(未优化)
- Matlab中统计矩阵中相同元素的个数的方法
- 51nod oj 1140 矩阵相乘结果的判断【矩阵的结合律】