Java 题解 | #乳牛各类产奶统计#

乳牛各类产奶统计

https://www.nowcoder.com/practice/4e4c1e24208e44a8a9b8c7dd5f829017

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[] l = new int[n + 1];
        int[] r = new int[n + 1];
        l[0] = r[0] = 1;
        for (int i = 1; i <= n; i++) {
            l[i] = l[i - 1] * milk_amount[i - 1];
            r[i] = r[i - 1] * milk_amount[n - i];
        }
        int[] res = new int[n];
        for (int i = 0; i < n; i++) {
            res[i] = l[i] * r[n - i - 1];
        }
        return res;
    }
}

用的是Java编程语言。

这道题考察的是数组操作和数学计算。给定一个整型数组 milk_amount,要求返回一个新的整型数组,其中每个元素是除了当前位置元素之外其他元素的乘积。

代码的解释如下:

  1. 定义一个整型 n 来表示数组的长度,并创建一个长度为 n + 1 的整型数组 l 和 r。数组 l 用于存储左侧元素的乘积,数组 r 用于存储右侧元素的乘积。
  2. 将 l[0] 和 r[0] 初始化为 1,作为起始乘积的初始值。
  3. 使用循环从1到 n,计算数组 l 和 r 的每个元素的值。对于 l[i],它等于 l[i - 1] 乘上 milk_amount[i - 1];对于 r[i],它等于 r[i - 1] 乘上 milk_amount[n - i]。
  4. 创建一个长度为 n 的整型数组 res,用于存储最终的结果。
  5. 使用循环从0到 n-1,计算 res 的每个元素的值。对于 res[i],它等于 l[i] 乘上 r[n - i - 1],即当前位置左侧元素的乘积乘上右侧元素的乘积。
  6. 返回结果数组 res。
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务