/**
* 思路:看做一张表格,列和行为a、b两个数组,对角线上的数组看做1,将表格分为上下两个三角
* @author Lucas
* @date 2021/04/23 18:17
* @param a
* @return int[]
*/
public int[] constructArr(int[] a) {
int len = a.length;
//长度为0 直接返回空数组
if(len == 0){
return new int[0];
}
int[] b = new int[len];
// 初始化b[0] 避免任何数乘以0都是0
b[0] = 1;
// 计算上三角暂存temp 再跟b[i]相乘
int temp = 1;
//计算下三角
for(int i = 1; i < a.length; i++) {
b[i] = b[i - 1] * a[i - 1];
}
//计算上三角
for(int i = a.length - 2; i >= 0; i--) {
temp *= a[i + 1];
b[i] *= temp;
}
return b;
}

这篇文章介绍了如何使用Java编程语言,通过两个数组a和b计算并构造一个对角线元素为1的矩阵,通过上三角和下三角的计算技巧,提供了一个实用的函数`constructArr`。适合理解数组操作和动态计算的读者。

被折叠的 条评论
为什么被折叠?



