搜狗2016招聘笔试题<矩阵元素相乘>Java代码(
2017-08-16 18:24
211 查看
本文地址:http://blog.csdn.net/shanglianlm/article/details/77262611
题目:
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
代码
题目:
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
代码
public class SougouMatrixMultiply { public static int matrixMultiply(int[][] array,int rows,int cols){ int[][] mulArray = new int[rows][cols]; int[] rowTemp = new int[rows]; Arrays.fill(rowTemp, 1); for(int i=0;i<rows;i++){ for(int j=0;j<cols;j++){ rowTemp[i] *= array[i][j]; } } int[] colTemp = new int[cols]; Arrays.fill(colTemp, 1); for(int i=0;i<cols;i++){ for(int j=0;j<rows;j++){ colTemp[i] *= array[j][i]; } } for(int i=0;i<rows;i++){ for(int j=0;j<cols;j++){ mulArray[i][j] = ((rowTemp[i]*colTemp[j])/array[i][j])/array[i][j]; } } System.out.println("乘积数组:"); int maxVal = 0; for(int i=0;i<rows;i++){ for(int j=0;j<cols;j++){ if(mulArray[i][j]>maxVal){ maxVal = mulArray[i][j]; } System.out.print(mulArray[i][j]+" "); } System.out.println(); } return maxVal; } public static void main(String[] args) { int rows = 3; int cols = 5; int[][] array = new int[rows][cols]; for(int i=0;i<rows;i++){ for(int j=0;j<cols;j++){ array[i][j] = (int) Math.round(Math.random()*9+1); } } System.out.println("输入数组:"); for(int i=0;i<rows;i++){ for(int j=0;j<cols;j++){ System.out.print(array[i][j]+" "); } System.out.println(); } int res = matrixMultiply(array,rows,cols); System.out.println("最大值:"+res); } }
相关文章推荐
- 京东2016招聘笔试题<分苹果>Java代码
- 网易2017招聘笔试题<下厨房>Java代码
- 搜狐2016招聘笔试题<发奖金>Java代码
- 网易2016招聘笔试<升级之路>Java代码
- 小米实习生笔试题<风口的猪-中国牛市>Java代码
- 网易2017春招笔试<双核处理>Java代码
- 搜狗2016研发工程师笔试(矩阵元素相乘)
- <代码收藏>矩阵相乘
- 网易2016招聘<路灯>Java代码
- 我在北京找工作(五):备战阿里巴巴java笔试<1>:筑基
- Java笔记3 多线程<2>线程间通信-代码分析以及多线程常见方法的运用
- <<J2SE>>Java代码自写9Path算法
- 使用Java代码遍历以获取Map<String,Object>的值
- <转>,防止刷新/后退引起的重复提交问题的Java Token代码,非Struts
- 相同的代码在eclipse中编译成功,但是用ant编译失败。无法确定<T>T的类型参数;对于上限为int,java.lang.Object的类型变量T,不存在唯一最大实例
- java 处理html代码 中<p> 标签 保证闭合
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- Android-在XML和Java代码中设置背景在不同状态的效果: <selector>/StateListDrawable
- java 位运算>><< >>> & | ~ ^ 代码详解
- Java NIO原理图文分析及代码实现<转>