力ブラシ問題238.自身以外の配列の積(java)
3839 ワード
長さnの整数配列numsが与えられ、n>1は出力配列outputを返し、output[i]はnums[i]を除くnumsの残りの要素の積に等しい.
例:
進級:定数空間の複雑さの中でこの問題を完成することができますか?(空間複雑度解析の目的で、出力配列は余分な空間と見なされない.)
構想
左積*右積
例:
: [1,2,3,4]
: [24,12,8,6]
: , O(n) 。
進級:定数空間の複雑さの中でこの問題を完成することができますか?(空間複雑度解析の目的で、出力配列は余分な空間と見なされない.)
構想
左積*右積
class Solution {
public int[] productExceptSelf(int[] nums) {
int[] res = new int[nums.length];
int k = 1;
for(int i = 0; i < res.length; i++){
res[i] = k;
k = k * nums[i]; //
}
k = 1;
for(int i = res.length - 1; i >= 0; i--){
res[i] *= k; // k 。
k *= nums[i]; // * 。
}
return res;
}
}