1.题目要求
给定一个数组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]。不能使用除法。
2.题目思路
对于这道题,要求对于一个数组,返回除了该位之外的所有的累加乘积。

对于这种需要遍历整个数组并返回除了自己之外的计算结果的题目,我们可以利用从前往后、从后往前的策略,来对整个数组实现遍历并计算乘积的功能。

在从前往后遍历时,我们利用一个变量记录从开始到当前位置的累加和。

从后往前也是一样,记录乘积。
3.代码实现


import java.util.ArrayList;
public class Solution {public int[] multiply(int[] A) {/*这道题的中心思想是将返回的数据列成一个矩阵,每一个矩阵的行向量都是一个从a(0)到a(n-1),然后这个对角线都是1.那么此时B0的值就是A0为一,剩下的行向量相乘。*/int length = A.length;int[] B = new int[length];B[0] = 1;for(int i = 1; i < length; i ++){B[i] = B[i - 1] * A[i - 1];}int temp = 1;for(int j = length - 2; j >= 0; j --){temp *= A[j + 1];//temp始终会记录值,每次只需要加上这行上三角没有乘进来的数就可以了。B[j] *= temp;}return B;}
}


剑指offer_3 -- 构建乘积数组相关推荐

  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. 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] ...

  4. 剑指offe--构建乘积数组

    问题:将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合 ...

  5. 【LeetCode】剑指 Offer 66. 构建乘积数组

    [LeetCode]剑指 Offer 66. 构建乘积数组 文章目录 [LeetCode]剑指 Offer 66. 构建乘积数组 package offer;import java.util.Arra ...

  6. 剑指offer——面试题52:构建乘积数组

    剑指offer--面试题52:构建乘积数组 Solution1: 自己想出来的笨蛋算法! class Solution { public:vector<int> multiply(cons ...

  7. 《剑指offer》-- 构建乘积数组、求1+2+3+...+n、不用加减乘除做加法、包含min函数的栈、用两个栈实现队列

    一.构建乘积数组: 1.题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*. ...

  8. 剑指Offer对答如流系列 - 构建乘积数组

    文章目录 面试题66:构建乘积数组 一.题目描述 二.问题分析 三.问题解答 面试题66:构建乘积数组 一.题目描述 给定一个数组A[0, 1, -, n-1],请构建一个数组B[0, 1, -, n ...

  9. 【剑指offer】数据结构——数组

    目录 数据结构--数组 直接解 [剑指offer]03.数组中重复的数字 排序法 集合法 原地置换 [剑指offer]04. 二维数组中的查找 [剑指offer]29. 顺时针打印矩阵 [剑指offe ...

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

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

最新文章

  1. SystemML大规模机器学习,优化算子融合方案的研究
  2. 学习编译原理对下面这段java跳不出死循环大概能有较好的解释吧
  3. 产业|世界十大工业自动化公司,你知道几家?
  4. Ubuntu16.04 配置pytorch
  5. gazebo仿真环境加载多个机器人
  6. android线程间通信的几种方法_Android 技能图谱学习路线
  7. 用webstorm自动编译less产出css和sourcemap
  8. java实现线性表的案例_数据结构—线性表(LinearList)的原理以及Java实现案例
  9. 数据结构c语言版第二版第三章课后答案,数据结构(C语言版)习题集答案第三章.doc...
  10. 运行javac编译报错:仅当显式请求注释处理时才接受类名称“xxxxxx”
  11. Juniper 防火墙session拥堵案例解决
  12. Atitit 为什么互联网金融会得到高层的支持 ----面子工程战略 政绩战略 大事业战略 高层需要在意识形态创新全球,政绩工程 得到合法性。 银行有很多家,而且别的区域也有。。不独特。。但是支付
  13. 基于matlab的自适应滤波器,基于MATLAB的自适应滤波器的设计与实现.doc
  14. 即席查询-Kylin
  15. 如何获取div中的value值
  16. IT 工程师长期保住饭碗的一些建议
  17. SystemUI Q 移植到android studio开发
  18. Note For Linux By Jes(1)-Linux 的文件权限与目录配置
  19. 计算机系迎新晚会策划,学院迎新晚会活动方案
  20. 视频怎么用伪原创手机 抖音短视频如何去水印

热门文章

  1. c语言判断奇偶数的函数,c语言高手进,尽量多做点13. 定义一个函数even(),判断一个整数是否是偶数。如果是偶数返回1,否则返回0。(要求包...
  2. 数据中心空调系统基础知识-制冷量与热量计算
  3. 人工智能笔记之专业选修课4.1.5 - 博弈论 7.极大极小策略,相关均衡
  4. 重温Spring笔记3 - 依赖注入
  5. 为了自己的梦想而努力
  6. Postgresql13之FETCH FIRST ROWS … WITH TIES展示打结的行
  7. IDEA开发工具删除代码注释
  8. linux 心脏滴血漏洞,漏洞bash近日“破壳”,当心再次“心脏出血”
  9. Nginx的try_files指令详解
  10. 安卓手机管理器_Kindle 传书最简单的方式:安卓/苹果手机都可以一键传书至Kindle!...