【剑指offer】面试题66:构建乘积数组(Java)
給定一個數(shù)組 A[0,1,…,n-1],請構建一個數(shù)組 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。
?
示例:
輸入: [1,2,3,4,5]
輸出: [120,60,40,30,24]
?
提示:
所有元素乘積之和不會溢出 32 位整數(shù)
a.length <= 100000
代碼:
class?Solution?{
????public?int[]?constructArr(int[]?a)?{
???????
????????int?left[]?=?new?int[a.length];
????????int?right[]?=?new?int[a.length];
????????int?result[]?=?new?int[a.length];
?????????if(a.length==0)
????????{
????????????return?result;
????????}
????????left[0]?=?1;
????????right[a.length-1]=1;
????????for(int?i?=1;i<a.length;i++)
????????{
????????????left[i]?=?left[i-1]*a[i-1];
????????}
????????for(int?i?=?a.length-2;i>=0;i--)
????????{
????????????right[i]?=?right[i+1]*a[i+1];
????????}
????????for(int?i=0;i<a.length;i++)
????????{
????????????result[i]?=?left[i]*right[i];
????????}
????????return?result;
????}
}
總結
以上是生活随笔為你收集整理的【剑指offer】面试题66:构建乘积数组(Java)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【剑指offer】面试题31:栈的压入,
- 下一篇: Leetcode--120. 三角形最小