《剑指offer》刷题笔记(数组):构建乘积数组
来源:互联网 发布:syslog 数据库 编辑:程序博客网 时间:2024/05/19 14:39
《剑指offer》刷题笔记(数组):构建乘积数组
- 转载请注明作者和出处:http://blog.csdn.net/u011475210
- 代码地址:https://github.com/WordZzzz/Note/tree/master/AtOffer
- 刷题平台:https://www.nowcoder.com/
- 题 库:剑指offer
- 编 者:WordZzzz
- 剑指offer刷题笔记数组构建乘积数组
- 题目描述
- 解题思路
- C版代码实现
- Python版代码实现
题目描述:
给定一个数组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]。不能使用除法。
解题思路:
B[i]=A[0] * A[1] * … * A[i-1] * A[i+1] * … * A[n-1]
1.从左到右算 B[i]=A[0] * A[1] * … * A[i-1]
2.从右到左算 B[i] * =A[i+1] * … * A[n-1]
拒绝嵌套循环。
C++版代码实现:
class Solution {public: vector<int> multiply(const vector<int>& A) { int n = A.size(); vector<int> B(n); int ret=1; for(int i=0; i<n; ret*=A[i++]) B[i] = ret; ret=1; for(int i=n-1; i>=0; ret*=A[i--]) B[i] *=ret; return B; }};
Python版代码实现:
# -*- coding:utf-8 -*-class Solution: def multiply(self, A): # write code here num = len(A) B = [None] * num B[0] = 1 for i in range(1, num): B[i] = B[i-1] * A[i-1] tmp = 1 for i in range(num-2, -1, -1): tmp *= A[i+1] B[i] *= tmp return B
系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~
完的汪(∪。∪)。。。zzz
阅读全文
0 0
- 《剑指offer》刷题笔记(数组):构建乘积数组
- 【剑指offer】题52:构建乘积数组
- 剑指offer(54):构建乘积数组
- 剑指offer(48)-构建乘积数组
- 剑指offer--构建乘积数组
- 《剑指offer》构建乘积数组
- 剑指offer-构建乘积数组
- 剑指offer:构建乘积数组
- 剑指offer:构建乘积数组
- 剑指offer:构建乘积数组
- [剑指offer]构建乘积数组
- 剑指offer|构建乘积数组
- 《剑指offer》-构建乘积数组
- 剑指offer 构建乘积数组
- 构建乘积数组--剑指Offer
- 【剑指offer】构建乘积数组
- 《剑指offer》构建乘积数组
- 剑指offer-构建乘积数组
- Python 使用 asyncio 包处理并发
- 如何利用颜色和线条让表格更有魅力以奖金分配表为例
- 吝啬的国度 深搜
- hdu-1566-Color the ball-线段树-java
- 设计模式(23个)
- 《剑指offer》刷题笔记(数组):构建乘积数组
- 《Java源码分析》:LinkedHashMap
- 【TX1学习与开发系列】(一)介绍与刷机安装、配置
- java中数据结构(二)双链表总结
- 基于哈希的图像检索框架
- https 证书实现
- js中取得不同精度的时间,时间戳,时间差的方法
- iOS自定义身份证键盘
- 使用@WebServlet注解来开发Servlet