网站上传文件代码,wordpress新闻抓取插件,php cms网站建设,甘肃省住房和城乡建设厅网站首页给你一个整数数组 nums#xff0c;返回数组 answer #xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 题目数据保证数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法#xff0c;且在 O(n) 时间复杂度内完… 给你一个整数数组 nums返回数组 answer 其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 题目数据保证数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法且在 O(n) 时间复杂度内完成此题。 示例 1:
输入: nums [1,2,3,4] 输出: [24,12,8,6]
示例 2:
输入: nums [-1,1,0,-3,3] 输出: [0,0,9,0,0]
解题思路 因为不能使用除法时间复杂度也不能超过O(n)所以这里使用左右乘积列表法详细方方法如下图所示 class Solution {
public:vectorint productExceptSelf(vectorint nums) {vectorint nums_revnums;reverse(nums_rev.begin(),nums_rev.end());//反转vectorint re_1;re_1.push_back(1);vectorint re_2;re_2.push_back(1);vectorint ans;for(int i0;inums.size()-1;i){int temp0;tempnums[i]*re_1[i];re_1.push_back(temp);}for(int i0;inums.size()-1;i){int temp0;tempnums_rev[i]*re_2[i];re_2.push_back(temp);}reverse(re_2.begin(),re_2.end());for(int i0;inums.size();i){int temp0;tempre_1[i]*re_2[i];ans.push_back(temp);}return ans;}
};