剑指offer-51

构建乘积数组

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

维护两个l-1的数组,一个存储从0到i的乘积,另一个存储从l-1到i-1的乘积,B[i] = B0[i-1]*B1[i]。2n的空间,3n的时间

import java.util.ArrayList;
public class Solution {
    public int[] multiply(int[] A) {
        int l = A.length;
        int[] B = new int[l];
        int[] B0 = new int[l-1];
        int[] B1 = new int[l-1];
        B0[0] = A[0];
        for(int i=1;i<l-1;i++){
            B0[i] = B0[i-1]*A[i];
        }
        B1[l-2] = A[l-1];
        for(int i=l-3;i>=0;i--){
            B1[i] = B1[i+1]*A[i+1];
        }
        B[0] = B1[0];
        B[l-1] = B0[l-2];
        for(int i=1;i<l-1;i++){
            B[i] = B0[i-1]*B1[i];
        }
        return B;
    }
}
全部评论

相关推荐

弦五Strings:他之所以会举报你代课是因为在这种人眼里正常上课就是正义代课就是邪恶,典型二极管思维,处理方法就是私下沟通,你就说你自己家里经济困难或者家里父母生病什么之类的,需要去打工挣钱,用尽孝的正义对冲他认为的上课的正义,他可能就妥协了。
我的实习日记
点赞 评论 收藏
分享
zzzzhz:兄弟你先猛猛投简历至少三百家,能约到面试就去面。最近可以速成智能小车,智慧家居烂大街的项目,不需要自己写,只需要把里面的代码讲解看明白就行。把其中涉及到的八股文都拿出来单独背一下,我去年找工作就一个智能小车智慧家居找了10k差不多。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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