题解 | #牛群重量积#

牛群重量积

https://www.nowcoder.com/practice/d3c6930f140f4b7dbf3a53dd36742193

知识点:数组

题目提示的很清楚,就是利用前缀和的思想,只不过这道题目需要使用前缀的乘积和后缀的乘积,分别定义两个数组来存储前缀乘积和后缀乘积,二者都可以通过遍历一遍数组累乘得到。之后再根据题目要求,去除当前位置及其左右的元素,也就是相隔一个位置的前缀乘积*相隔一个位置的后缀乘积,以得到答案数组。

Java题解如下

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型一维数组
     */
    public int[] productExceptSelf (int[] nums) {
        // write code here
        int n = nums.length;
        int[] prefix = new int[n + 1];
        int[] suffix = new int[n + 1];
        prefix[0] = 1;
        suffix[n] = 1;
        for(int i = 0; i < n; i++) {
            prefix[i + 1] = prefix[i] * nums[i];
        }
        for(int i = n - 1; i >= 0; i--) {
            suffix[i] = suffix[i + 1] * nums[i];
        }
        int[] res = new int[n];
        res[0] = suffix[2];
        res[n - 1] = prefix[n - 2];
        for(int i = 1; i < n - 1; i++) {
            res[i] = prefix[i - 1] * suffix[i + 2];
        }
        return res;
    }
}

全部评论

相关推荐

小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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