剑指offer-51-构建乘积数组

构建乘积数组

http://www.nowcoder.com/questionTerminal/94a4d381a68b47b7a8bed86f2975db46

思路

去除本身,两边所有元素的和,如果可以用除法,所有元素之积除以本身。不能用除法,其实左边是累积,右边是倒序的累积
先求两个辅助数组,累积数组和倒序累积数组。然后B[i]=help1[i-1]*help[i+1];

代码

public class Solution {
    public int[] multiply(int[] A) {
        int n=A.length;
        int[] B=new int[n];
        int[] help1=new int[n];
        int[] help2=new int[n];
        help1[0]=A[0];
        for(int i=1;i<n;i++){
           help1[i]=A[i]*help1[i-1];
        }
        help2[n-1] = A[n-1];
        for(int i=n-2;i>=0;i--){
           help2[i]=A[i]*help2[i+1];
        }
        B[0]=help2[1];
        B[n-1]=help1[n-2];
        for(int i=1;i<=n-2;i++){
            B[i]=help1[i-1]*help2[i+1];
        }
       return B;
    }
}
剑指offer与数据结构 文章被收录于专栏

本专栏包括剑指offer题目和一些刷题用的数据结构,单调栈,树状数组,差分数组,后面还会更新红黑树等较为复杂的数据结构

全部评论

相关推荐

在debug的柠檬精很迷人:好消息:现在HR挑三拣四 15年后 HR跪着求要简历 坏消息:被挑的是这代人,到时候求人的也是这代人。真好。
点赞 评论 收藏
分享
06-12 16:50
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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