题解 | #构建乘积数组#

构建乘积数组

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

用两个数组分别记录当前元素之前的乘积和之后的乘积;最后两个数组对应位置元素相乘即可;

public int[] multiply(int[] A) {
if (A.length == 0 || A.length == 1) {
return null;
}
int len = A.length;
int[] before = new int[len];
int[] after = new int[len];
before[0] = 1;
for (int i = 1; i < len; i++) {
before[i] = before[i - 1] * A[i - 1];
}
after[len - 1] = 1;
for (int i = len - 2; i >= 0; i--) {
after[i] = after[i + 1] * A[i + 1];
}
int[] ans = new int[len];
for (int i = 0; i < len; i++) {
ans[i] = before[i] * after[i];
}
return ans;
}

全部评论

相关推荐

刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务