【剑指Offer】构建乘积数组 解题报告(Python)
【剑指Offer】构建乘积数组 解题报告(Python)
标签(空格分隔): 剑指Offer
题目地址:https://www.nowcoder.com/ta/coding-interviews
题目描述:
给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A1…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。
解题方法
LeetCode原题238. Product of Array Except Self。思路挺简单,用prod来保存之前的所有数字的乘积;回头的时候保存后面的所有数字的乘积。向前和向后的代码其实是一样的,所以题目还算简单。
代码:
# -*- coding:utf-8 -*-
class Solution:
def multiply(self, A):
ans = []
_len = len(A)
prod = 1
for i in range(_len):
ans.append(prod)
prod *= A[i]
prod = 1
for i in range(len(A) - 1, -1, -1):
ans[i] *= prod
prod *= A[i]
return ans
Date
2018 年 3 月 27 日 – 第一次把车开走了,注意离合要慢
【剑指Offer】构建乘积数组 解题报告(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]. ...
- 【剑指Offer】丑数 解题报告
[剑指Offer]丑数 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描述: ...
- 【剑指Offer】反转链表 解题报告(Python)
[剑指Offer]反转链表 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描 ...
- 【剑指Offer】矩阵覆盖 解题报告(Python)
[剑指Offer]矩阵覆盖 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描 ...
- 【剑指Offer】扑克牌顺子 解题报告(Python)
[剑指Offer]扑克牌顺子 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描 ...
- 【剑指Offer】序列化二叉树 解题报告(Python)
[剑指Offer]序列化二叉树 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目 ...
- 剑指Offer-51.构建乘积数组(C++/Java)
题目: 给定一个数组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].不能 ...
- 剑指offer52 构建乘积数组
这个题的错误和c++ primier中名字的作用域例子相似.只是这里将int换成了vecto<int>这种形式. class Solution { public: vector<in ...
- 【剑指Offer】旋转数组中的最小数字 解题报告(Python)
[剑指Offer]旋转数组中的最小数字 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-intervie ...
随机推荐
- HTTP初识
HTTP(HyperText Transfer Protocol):超文本传输协议. URL(Uniform Resource Locator):统一资源定位符. URI(Uniform Resour ...
- ClassLoad类加载器与双亲委派模型
1. 类加载器 Class类描述的是整个类的信息,在Class类中提供的方法getName()是根据ClassPath配置的路径来进行类加载的.若类加载的路径为文件.网络等时则必须进行类加载这是就需要 ...
- 使用MySQL的SELECT INTO OUTFILE ,Load data file,Mysql 大量数据快速导入导出
使用MySQL的SELECT INTO OUTFILE .Load data file LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中.当用户一前一后地使用SELECT ...
- 【Java基础】ArrayList初始化操作
要用60个零初始化列表,请执行以下操作: List<Integer> list = new ArrayList<Integer>(Collections.nCopies(60, ...
- idea集成开发工具快捷键大全
1 执行(run) alt+r 2 提示补全 (Class Name Completion) ...
- Delphi编译报错对照表
';' not allowed before 'ELSE' → ElSE前不允许有";" " clause not allowed in OLE automation s ...
- BDD自动化测试框架cucumber(1): 最基本的demo
BDD(Behavior Driven Development),行为驱动开发, 对应自动化测试框架,python有behave,java有cucumber, 这次记录cucumber+springb ...
- 阿里云RDS备份 恢复到本地
目录 一.恢复准备 二.具体操作 一.恢复准备 阿里云RDS默认配置了全备份+binlog,可以精准恢复到某个时间点上. 可以下载备份的包到本地,进行本地恢复,要预留好本地的数据库容量和cpu等规格, ...
- Linux服务器被黑 排查思路
目录 一.为何会被入侵? 二.排查 入侵排查 检查是否还存在被登陆可能 计划任务 被修改的文件 筛选日志 日志恢复 找到异常进程-1 找到异常进程-2 找到异常进程-3 找到异常进程-4 三.总结 一 ...
- 02-多任务-thread
多任务-Thread 一.理解并行与并发 并行:cpu数多于任务数 例如: 一共有三个任务,分别是:QQ.微信.陌陌:一共有四个CPU,每个任务占据一个CPU. 并发:CPU数少于任务数 例如: 一共 ...