题解 | #乳牛各类产奶统计# 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[] left = new int[n];
        int[] right = new int[n];
        int[] others = new int[n];

        // 计算每个元素左侧所有元素的乘积
        int product = 1;
        for (int i = 0; i < n; i++) {
            left[i] = product;
            product *= milk_amount[i];
        }

        // 计算每个元素右侧所有元素的乘积
        product = 1;
        for (int i = n - 1; i >= 0; i--) {
            right[i] = product;
            product *= milk_amount[i];
        }

        // 计算其他元素的乘积
        for (int i = 0; i < n; i++) {
            others[i] = left[i] * right[i];
        }

        return others;
    }
    }

编程语言是Java。

该题考察的知识点是数组操作和前缀乘积。

代码的文字解释如下:

  1. 一整型数组left用于存储每个元素左侧所有元素的乘积。
  2. right用于存储每个元素右侧所有元素的乘积。
  3. others用于存储除当前元素以外的所有元素的乘积。
  4. 从左到右遍历原始数组milk_amount,计算left数组的值:初始时将product设为1,然后将product乘以当前元素,并将结果存入left数组对应位置。
  5. 从右到左遍历原始数组milk_amount,计算right数组的值:初始时将product设为1,然后将product乘以当前元素,并将结果存入right数组对应位置。
  6. 使用for循环遍历原始数组milk_amount,计算others数组的值:将left数组对应位置的值乘以right数组对应位置的值,并将结果存入others数组对应位置。
  7. 循环结束后,返回others数组作为最终的结果。
全部评论

相关推荐

11-03 12:40
中山大学 Java
勇敢的突尼斯海怪选钝...:楼主这拒意向话术好得体呀 !求问HR回复态度咋样呀
点赞 评论 收藏
分享
10-31 13:04
南华大学 Java
嵌入式的小白:很多面试,面试前不会去打扰cto的,但一般cto不会在这些小事上刷人,只能说这个cto比较操心,啥重要不重要,紧急不紧急的,估计都会过问,平淡看待吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务