剑指offer:构建乘积数组(Java)

构建乘积数组

https://www.nowcoder.com/practice/94a4d381a68b47b7a8bed86f2975db46?tpId=13&tqId=11204&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目

给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1]。不能使用除法。

思路

数组 B[i] = A[0]A[1]...A[i-1]A[i+1]...A[n-1],即除去 A[i] 的所有值相乘
可以将 A[i] 设为1,再用 for 循环将 A 中所有值相乘
临时变量 temp 先存储 A[i] 的值,然后再赋回来。

代码

public int[] multiply(int[] A) {
    int[] B = new int[A.length];
    int temp = 0;
    for (int i = 0; i < A.length; i++) {
        temp = A[i];
        A[i] = 1;
        B[i] = 1;
        for (int j = 0; j < A.length; j++) {
            B[i] *= A[j];
        }
        A[i] = temp;
    }
    return B;
}
全部评论
我的天为啥这会有人看
1 回复
分享
发布于 2021-02-04 16:51
你***真是人才
1 回复
分享
发布于 2021-05-20 21:35
联想
校招火热招聘中
官网直投
妙啊
点赞 回复
分享
发布于 2021-01-04 17:27
绝!
点赞 回复
分享
发布于 2021-02-03 22:24
上面两个是你的小号吧。。。
点赞 回复
分享
发布于 2021-02-07 23:28
你***真是人才
点赞 回复
分享
发布于 2021-03-30 12:01
时间复杂度n方,和我写的暴力AC一个样hhhhh
点赞 回复
分享
发布于 2021-04-01 19:57
终于找到一个比我更费空间的了
点赞 回复
分享
发布于 2021-06-22 13:57
秒啊
点赞 回复
分享
发布于 2021-08-30 17:10
你***真是个人才
点赞 回复
分享
发布于 2022-08-29 11:01 河南

相关推荐

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