构建乘积数组 发表于 2017-08-08 | 分类于 算法 | | 阅读次数: 字数统计: 121 字 | 阅读时长 ≈ 1 分钟 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]\A[i+1]…A[n-1]。不能使用除法。 12345678910111213function multiply($numbers){ $b = array(); //若原数组0个数大于1个,则用0填充b数组 if (array_count_values($numbers)[0] > 1){ return array_fill(0, count($numbers), 0); } for ($i=0; $i<count($numbers); $i++){ //用差集,从原数组去除一个数 $b[$i] = array_product(array_diff($numbers, array_slice($numbers, $i, 1))); } return $b;}