题解 | #乳牛各类产奶统计#
乳牛各类产奶统计
https://www.nowcoder.com/practice/4e4c1e24208e44a8a9b8c7dd5f829017?tpId=354&tqId=10588090&ru=/exam/company&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Fcompany
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param milk_amount int整型一维数组 * @return int整型一维数组 */ public int[] product_except_self (int[] milk_amount) { // write code here int n = milk_amount.length; int[] prefixProduct = new int[n]; int[] suffixProduct = new int[n]; int[] others = new int[n]; // Calculate prefix product int prefix = 1; for (int i = 0; i < n; i++) { prefixProduct[i] = prefix; prefix *= milk_amount[i]; } // Calculate suffix product int suffix = 1; for (int i = n - 1; i >= 0; i--) { suffixProduct[i] = suffix; suffix *= milk_amount[i]; } // Calculate others array for (int i = 0; i < n; i++) { others[i] = prefixProduct[i] * suffixProduct[i]; } return others; } }
考察的知识点:
- 数组操作:计算前缀乘积和后缀乘积。
- 循环遍历:遍历数组来计算前缀乘积和后缀乘积。
解题思路:
这个问题可以使用前缀和和后缀和的方法来解决。首先,我们可以计算数组中每个位置的前缀乘积和后缀乘积,然后将它们相乘即可得到其他品种的牛产奶量的乘积。