python数据结构剑指offer-构建乘积数组
例题
描述
给定一个数组 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-构建乘积数组相关推荐
- 剑指Offer66—构建乘积数组
剑指Offer66 题意 法1-暴力法(无法通过) class Solution { public:vector<int> constructArr(vector<int>&a ...
- 剑指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].不能使 ...
- 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
<LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...
- 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java
<LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...
- 剑指 Offer 11. 旋转数组的最小数字 简单
剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...
- 剑指offer 11. 旋转数组的最小数字(很详细!)
剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...
- 【LeetCode】剑指 Offer 45. 把数组排成最小的数
[LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...
- 【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
[LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 文章目录 [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 一.双指针 一.双指针 解题思路: ...
- 【LeetCode】剑指 Offer 11. 旋转数组的最小数字
[LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...
最新文章
- Hibernate框架第二天
- 计算机办公高级试题,高级办公软件试题及解答
- mysql php ajax_PHP 和 AJAX MySQL 数据库实例
- MySQL之InnoDB索引的一些问题
- 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放
- 第 3 章 运行时数据区概述及线程
- QTP自动化测试从零基础到精通进阶(脚本测试、VBS语法、描述性编程、测试框架)...
- 计算机组成原理知识点总结白中英,计算机组成原理知识点总结.pdf
- 电信系统服务器地址,全国各地电信DNS服务器地址
- Radius认证有线与无线网络(一)
- 梅隆大学计算机专业申请,卡耐基梅隆大学计算机专业申请要求及研究方向
- Android开发 人民币符号(¥)显示不一致的问题
- 关于搭建简易广域网私人通信程序(python)一步到位!
- ios+透明度+css,ios -css
- 8月顺利拿到OPPO公司Android架构师offer,一面+部长面
- 接私活赚到W了!!!!
- 当你手机上有这些APP,那么你就可以把你的兴趣变成赚钱的工具
- 今天是七夕节、用100行CSS代码下一场流星雨、许一个愿、来一场美丽的邂逅
- 「GoCN酷Go推荐」快速搭建私有云服务 go-btfs
- 国光流量计算机ppt,常见问题
热门文章
- linux内存管理(八)-不连续页分配和页表
- Qt学习之如何启动和终止一个线程
- C# 算法之链表、双向链表以及正向反向遍历实现
- Android自定义View,带你实现小米指南针和时钟
- MyISAM的key_buffer_size和InnoDB的innodb_buffer_pool_size
- 【心灵鸡汤】谁的青春不迷茫
- 【十五分钟Talkshow】如何善用你的.NET开发环境
- 分析器错误信息: 未能加载类型命名空间.类...
- 在linux下面实现检测按键(Linux中kbhit()函数的实现)
- sqoop导出数据|Hive|HDFS和脚本编写