兴仁企业建站公司,包头做网站的公司招聘信息,公司建站方案,三亚公共安全论坛1. 题目
给定一个数组 A[0,1,…,n-1]#xff0c;请构建一个数组 B[0,1,…,n-1]#xff0c;其中 B 中的元素 B[i]A[0]A[1]…A[i-1]A[i1]…A[n-1]。不能使用除法。
示例:
输入: [1,2,3,4,5]
输出: [120,60,40,30,24]提示#xff1a;
所有元素乘积之和不会溢出 32 位整数
a.l…1. 题目
给定一个数组 A[0,1,…,n-1]请构建一个数组 B[0,1,…,n-1]其中 B 中的元素 B[i]A[0]×A[1]×…×A[i-1]×A[i1]×…×A[n-1]。不能使用除法。
示例:
输入: [1,2,3,4,5]
输出: [120,60,40,30,24]提示
所有元素乘积之和不会溢出 32 位整数
a.length 100000来源力扣LeetCode 链接https://leetcode-cn.com/problems/gou-jian-cheng-ji-shu-zu-lcof 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
正向扫描获取每个数左侧的乘积反向扫描获取每个数右侧的乘积最后扫描一遍得到除自身外的两侧乘积相乘
class Solution {
public:vectorint constructArr(vectorint a) {int n a.size(), i, product 1;vectorint left(n,1), right(n,1);for(i 1; i n; i){product * a[i-1];left[i] product;}product 1;for(i n-2; i 0; i--){product * a[i1];right[i] product;}vectorint ans(n);for(i 0; i n; i)ans[i] left[i]*right[i];return ans;}
};