Cool说丨力扣剑指offer.66

简介: 剑指 Offer 66. 构建乘积数组

剑指 Offer 66. 构建乘积数组

给定一个数组 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]。不能使用除法。


示例:

输入: [1,2,3,4,5]

输出: [120,60,40,30,24]


提示:

  • 所有元素乘积之和不会溢出 32 位整数
  • a.length <= 100000

1、一种绝妙的作法

执行用时:36 ms, 在所有 C++ 提交中击败了88.82%的用户

内存消耗:24.5 MB, 在所有 C++ 提交中击败了100.00%的用户

   vector<int>constructArr(vector<int>&a) {

       intlen=a.size();

       inttemp=1;

       vector<int>b(len);

       for(inti=0;i<len;temp*=a[i],++i)

           b[i] =temp;

       

       temp=1;

       for(inti=len-1;i>=0;temp*=a[i],--i)

           b[i] *=temp;

       returnb;

   }

目录
相关文章
|
6月前
|
算法
【LeetCode】剑指 Offer <二刷>(2)
【LeetCode】剑指 Offer <二刷>(2)
27 0
|
8天前
|
算法 DataX
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
|
9天前
|
算法 定位技术
【leetcode】剑指 Offer II 105. 岛屿的最大面积-【深度优先DFS】
【leetcode】剑指 Offer II 105. 岛屿的最大面积-【深度优先DFS】
13 0
|
4月前
「LeetCode」剑指 Offer 40. 最小的k个数
「LeetCode」剑指 Offer 40. 最小的k个数
27 0
|
9月前
【LeetCode】剑指 Offer(20)
【LeetCode】剑指 Offer(20)
45 0
|
4月前
leetcode 剑指 Offer 32 - III. 从上到下打印二叉树 III
leetcode 剑指 Offer 32 - III. 从上到下打印二叉树 III
22 0
|
4月前
leetcode 剑指 Offer 32 - II. 从上到下打印二叉树 II
leetcode 剑指 Offer 32 - II. 从上到下打印二叉树 II
20 0
|
4月前
/leetcode 剑指 Offer 32 - I. 从上到下打印二叉树
/leetcode 剑指 Offer 32 - I. 从上到下打印二叉树
21 0
|
4月前
LeetCode 剑指 Offer 28. 对称的二叉树
LeetCode 剑指 Offer 28. 对称的二叉树
18 0
|
4月前
|
存储
LeetCode155|剑指 Offer 30. 包含 min 函数的栈
调用 min、push 及 pop 的时间复杂度都是 O(1) 因此实现一个能够得到栈的最小元素的 min 函数,我们就不能使用for等循环去查找,直接去排序大可不必,所以我们可以通过创建另一个栈,专门去存储每次比较的最小值。
18 0