这是一道暴力解题很简单,但是必然超时的题目,所以,就需要我们使用一些小办法。
评论区大佬的很巧妙的解法。
class Solution {
public int[] constructArr(int[] a) {
int[] res = new int[a.length];
//将该元素左面的所有数相乘
for (int i = 0, cur = 1; i < a.length; i++) {
//每次都是先赋值后相乘,保证了不包括自己
res[i] = cur;
cur *= a[i];
}
//再将该元素右面的所有数相乘
for (int i = a.length - 1, cur = 1; i >= 0; i--) {
res[i] *= cur;
cur *= a[i];
}
return res;
}
}