给定一个数组 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]。不能使用除法。

示例:

输入: [1,2,3,4,5]
输出: [120,60,40,30,24]

提示:

所有元素乘积之和不会溢出 32 位整数
a.length <= 100000

代码:

class Solution {

public int[] constructArr(int[] a) {

int left[] = new int[a.length];

int right[] = new int[a.length];

int result[] = new int[a.length];

if(a.length==0)

{

return result;

}

left[0] = 1;

right[a.length-1]=1;

for(int i =1;i<a.length;i++)

{

left[i] = left[i-1]*a[i-1];

}

for(int i = a.length-2;i>=0;i--)

{

right[i] = right[i+1]*a[i+1];

}

for(int i=0;i<a.length;i++)

{

result[i] = left[i]*right[i];

}

return result;

}

}

【剑指offer】面试题66:构建乘积数组(Java)相关推荐

  1. 剑指Offer - 面试题66. 构建乘积数组(正反遍历)

    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. 剑指offer面试题66. 构建乘积数组

    题目描述 给定一个数组 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. 【有返回值的回溯法】剑指offer——面试题66:矩阵中的路径(回溯法)

    剑指offer--面试题66:矩阵中的路径(回溯法) Solution:1 典型的回溯算法及代码 此题是回溯法的典型例题,思路以及代码均是书中所讲.要具体实现很有参考价值,借鉴之! 现在把书中代码贴在 ...

  4. 剑指offer 面试题三 找出数组中重复的数字

    1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...

  5. 剑指offer——面试题33:把数组排成最小数

    剑指offer–面试题33:把数组排成最小数 Solution1: 20180904复习.重点记忆比较技巧!!! 代码参考网址:https://www.nowcoder.com/profile/416 ...

  6. 剑指offer——面试题14:调整数组顺序使奇数位于偶数前面

    剑指offer--面试题14:调整数组顺序使奇数位于偶数前面 Solution1: 顺序交换,比较好的算法!!! class Solution { public:void reOrderArray(v ...

  7. 剑指offer——面试题8:旋转数组的最小数字

    剑指offer--面试题8:旋转数组的最小数字 Solution1: 自己想的复杂度为O(n)O(n)O(n)的算法,若用二分查找则: 1.代码复杂:2.最坏情况下的二分查找的时间复杂度亦为O(n)O ...

  8. 两个数组中对应的下标的值合成一个新的数组_剑指 offer 面试题精选图解 03 . 数组中重复的数字

    今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 面试题03. 数组中重复的数字. 题目链接:https://leetcode-cn.com/problems/shu-zu-zhon ...

  9. 剑指offer面试题6 重建二叉树(java)

    注:(1)java中树的构建 (2)构建子树时可以直接利用Arrays.copyOfRange(preorder, from, to),这个方法是左开右闭的 1 package com.xsf.Sor ...

  10. [剑指offer]面试题8:旋转数组的最小数字

    面试题8:旋转数组的最小数字 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2 ...

最新文章

  1. EasyUI学习总结(五)——EasyUI组件使用
  2. linux目录空间内存,Linux 目录结构:内存文件夹
  3. USTC English Club Note20211110
  4. SpringMVC校验---SpringMVC学习笔记(八)
  5. 红帽将召开“开放你的世界”在线论坛
  6. Buying Feed, 2010 Nov (单调队列优化DP)
  7. mysql笔记手写_MySQL 笔记(一)
  8. java持久层框架mybatis如何防止sql注入
  9. 宏正ATEN推出ALTUSEN系列 全面冲刺KVM高端市场
  10. 2017年美国人工智能投资分析报告
  11. 常见物理量的量纲在OpenFOAM中的表示
  12. 奶爸级教学---webpack详细教学
  13. 数据可视化图表类型_数据可视化中12种最常见的图表类型
  14. LinuxC语言简单实现图片加马赛克-标准IO实现
  15. 自适应网页(响应式布局)+弹性布局
  16. 如何快速提升文章阅读量?
  17. HTML5情人节礼物2(女友3D相册)
  18. JVM监控及诊断工具-GUI篇
  19. 解决Django migrate: Your models in app(s): ‘Mymodelclassname‘ have changes that are not yet reflected
  20. OpenMP - 维基百科,自由的百科全书

热门文章

  1. LeetCode 923. 三数之和的多种可能(双指针)
  2. LeetCode 198. 打家劫舍(DP)
  3. unity game和scene效果不一样_不同的真石漆装饰效果也是不一样的
  4. k8s挂载目录_拥抱云原生,如何将开源项目用k8s部署?
  5. 朵唯机器人怎么连网_平遥古城推出机器人导游 可伴游还可骑行
  6. java 反射的弊端_java反射机制的一些学习心得小结
  7. 可解释性:对神经网络中层特征复杂度的解释与拆分
  8. 对比学习有多火?文本聚类都被刷爆了…
  9. 美团服务体验平台对接业务数据的最佳实践-海盗中间件
  10. Redis系列教程(二):详解Redis的存储类型、集群架构、以及应用场景