例题

描述
给定一个数组 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](除 A[i] 以外的全部元素的的乘积)。程序中不能使用除法。(注意:规定 B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2])
对于 A 长度为 1 的情况,B 无意义,故而无法构建,用例中不包括这种情况。

数据范围:1 \le n \le 10 \1≤n≤10 ,数组中元素满足 |val| \le 10 \∣val∣≤10
示例1
输入:
[1,2,3,4,5]

返回值:
[120,60,40,30,24]

示例2
输入:
[100,50]

返回值:
[50,100]

解决方案

def multiply(A):count = 0B = []flag = Truewhile count < len(A):result = 1C = A.copy()C.pop(count)for i in C:result *= iB.append(result)count += 1return B

总结

时间复杂度有点高,回头得优化下

python数据结构剑指offer-构建乘积数组相关推荐

  1. 剑指Offer66—构建乘积数组

    剑指Offer66 题意 法1-暴力法(无法通过) class Solution { public:vector<int> constructArr(vector<int>&a ...

  2. 剑指offer51 构建乘积数组(图解)

    描述 给定一个数组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].不能使 ...

  3. 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java

    <LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...

  4. 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java

    <LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...

  5. 剑指 Offer 11. 旋转数组的最小数字 简单

    剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...

  6. 剑指offer 11. 旋转数组的最小数字(很详细!)

    剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...

  7. 【LeetCode】剑指 Offer 45. 把数组排成最小的数

    [LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...

  8. 【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

    [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 文章目录 [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 一.双指针 一.双指针 解题思路: ...

  9. 【LeetCode】剑指 Offer 11. 旋转数组的最小数字

    [LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...

最新文章

  1. Hibernate框架第二天
  2. 计算机办公高级试题,高级办公软件试题及解答
  3. mysql php ajax_PHP 和 AJAX MySQL 数据库实例
  4. MySQL之InnoDB索引的一些问题
  5. 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放
  6. 第 3 章 运行时数据区概述及线程
  7. QTP自动化测试从零基础到精通进阶(脚本测试、VBS语法、描述性编程、测试框架)...
  8. 计算机组成原理知识点总结白中英,计算机组成原理知识点总结.pdf
  9. 电信系统服务器地址,全国各地电信DNS服务器地址
  10. Radius认证有线与无线网络(一)
  11. 梅隆大学计算机专业申请,卡耐基梅隆大学计算机专业申请要求及研究方向
  12. Android开发 人民币符号(¥)显示不一致的问题
  13. 关于搭建简易广域网私人通信程序(python)一步到位!
  14. ios+透明度+css,ios -css
  15. 8月顺利拿到OPPO公司Android架构师offer,一面+部长面
  16. 接私活赚到W了!!!!
  17. 当你手机上有这些APP,那么你就可以把你的兴趣变成赚钱的工具
  18. 今天是七夕节、用100行CSS代码下一场流星雨、许一个愿、来一场美丽的邂逅
  19. 「GoCN酷Go推荐」快速搭建私有云服务 go-btfs
  20. 国光流量计算机ppt,常见问题

热门文章

  1. linux内存管理(八)-不连续页分配和页表
  2. Qt学习之如何启动和终止一个线程
  3. C# 算法之链表、双向链表以及正向反向遍历实现
  4. Android自定义View,带你实现小米指南针和时钟
  5. MyISAM的key_buffer_size和InnoDB的innodb_buffer_pool_size
  6. 【心灵鸡汤】谁的青春不迷茫
  7. 【十五分钟Talkshow】如何善用你的.NET开发环境
  8. 分析器错误信息: 未能加载类型命名空间.类...
  9. 在linux下面实现检测按键(Linux中kbhit()函数的实现)
  10. sqoop导出数据|Hive|HDFS和脚本编写