力扣-数组-238 除自身以外数组的乘积
思路
题目也提示了,记录前缀乘积和后缀乘积即可,主要是数组定义 p r e f i x [ i ] prefix[i] prefix[i]表示从 0 0 0到 i − 1 i-1 i−1的前缀乘积和,所以 p r e f i x [ i ] = n u m s [ i − 1 ] ∗ p r e f i x [ i − 1 ] prefix[i] = nums[i-1] * prefix[i-1] prefix[i]=nums[i−1]∗prefix[i−1],同理后缀乘积也需要定义好数组意义
代码
class Solution {public int[] productExceptSelf(int[] nums) {int len = nums.length;int []answer = new int[len];int prefix[] = new int[len];// prefix[i] 表示 0- i - 1 相乘的前缀int post[] = new int[len];// post[i] 表示i+1 到 len - 1 相乘prefix[0] = 1;for(int i = 1; i < len; i++) prefix[i] = prefix[i-1] * nums[i-1];post[len-1] = 1;for(int i = len - 2; i >= 0; i--) post[i] = post[i+1] * nums[i+1];for(int i = 0; i < len; i++){answer[i] = prefix[i] * post[i];}return answer;}
}