2020-1-13 吴亲库里 库里的深夜食堂
给定一个整形数组,结果也是返回一个数组。这个数组需要满足什么呢。即输出的数组第 i 个的值必须是原数组中除第 i 个值的所有乘积。

第一次想的是第一遍遍历的时候算总乘积,然后第二次遍历的时候➗当前这个数不就解决了。结果人家直接在底下说明不能用除法哈哈哈。然后,好吧题目的难度增大了。那就换个角度,你可以思考下,排除第 i 个元素的乘积是咋么算出来的?不就是第 i 个数左边的乘积✖️它右边数的乘积嘛。有些时候就是这么让人奇妙。
/**
* @param Integer[] $nums
* @return Integer[]
*/
function productExceptSelf($nums) {
$res=[];
$k=1;
for($i=0;$i<count($nums);$i++){
$res[$i]=$k;
$k *=$nums[$i];
}
$k=1;
for($i=count($nums)-1;$i>=0;$i--){
$res[$i] *=$k;
$k*=$nums[$i];
}
return $res;
}
