题解 | #乳牛各类产奶统计#
题目考察的知识点
这个题目主要考察的是数组的遍历和乘积计算。
题目解答方法的文字分析
题目要求计算一个数组中除了当前元素以外,其他元素的乘积。我们可以通过两次遍历数组来实现:
- 第一次遍历:从左到右计算每个元素左侧的乘积,将结果保存在一个新数组中。
- 第二次遍历:从右到左计算每个元素右侧的乘积,并与之前计算的左侧乘积相乘,得到最终结果。
本题解析所用的编程语言
本题解析使用的是JavaScript语言。
完整且正确的编程代码
上面给出的代码使用了两个循环来计算乘积数组 others。具体的解析如下:
- 函数
product_except_self
接受一个整数数组milk_amount
作为参数。 - 首先,创建一个长度与
milk_amount
相同的结果数组others
。 - 然后,使用一个变量
leftProduct
记录左侧乘积的累积结果,初始值为 1。 - 第一个循环从数组的左侧开始遍历,对于每个元素,将左侧乘积保存在
others
数组中,并更新leftProduct
。 - 接下来,使用一个变量
rightProduct
记录右侧乘积的累积结果,初始值为 1。 - 第二个循环从数组的右侧开始遍历,对于每个元素,将之前计算的左侧乘积与右侧乘积相乘,并将结果保存在
others
数组中。 - 最后,返回计算得到的
others
数组。
function product_except_self(milk_amount) {
const n = milk_amount.length;
// 创建结果数组
const others = new Array(n);
// 计算左侧乘积
let leftProduct = 1;
for (let i = 0; i < n; i++) {
others[i] = leftProduct;
leftProduct *= milk_amount[i];
}
// 计算右侧乘积并同时计算最终结果
let rightProduct = 1;
for (let i = n - 1; i >= 0; i--) {
others[i] *= rightProduct;
rightProduct *= milk_amount[i];
}
return others;
}
题解 | 前端刷题 文章被收录于专栏
题目考察的知识点 题目解答方法的文字分析 本题解析所用的编程语言 完整且正确的编程代码