剑指offer 面试题52 构建乘积数组
来源:互联网 发布:电子商务美工就业前景 编辑:程序博客网 时间:2024/06/08 13:20
剑指offer 面试题52 构建乘积数组
题目: 给定一个数组 A[0, 1, …, n-1],请构建一个数组 B[0, 1, …, n-1],
其中 B 中的元素 B[i] = A[0] * A[1] * A[2] * … * A[i+1] * A[i+2]。
不能使用除法运算。
package algorithm.foroffer.top60;import org.junit.Test;import java.util.Arrays;/** * description: * * @author liyazhou * @create 2017-06-06 17:36 * 面试题52:构建乘积数组 * * 题目: * 给定一个数组 A[0, 1, ..., n-1],请构建一个数组 B[0, 1, ..., n-1], * 其中 B 中的元素 B[i] = A[0] * A[1] * A[2] * ... * A[i+1] * A[i+2]。 * 不能使用除法运算。 * * 考查点: * 1. 找规律,提高计算速度 * 2. 把计算过的,且以后会用到的数据保存起来,减少计算次数,提升执行效率 * * 思路: * 1. B[i] = A[0] * A[1] * A[2] * ... * A[i+1] * A[i+2] * ... * A[n-1] * 可以定义,B[i] = C[i] + D[i] * 其中,C[i] = A[0] * A[1] * A[2] * ... * A[i-1], * D[i] = A[i+1] * A[i+2] * ... * A[n-1] * = A[n-1] * A[n-2] * ... * A[i+1] * * 则 B[i+1] = C[i+1] * D[i+1], * 其中,C[i+1] = C[i] * A[i], D[i+1] = A[n-1] * A[n-2] * ... * A[i+2] * */public class Test52 { public int[] multiply(int[] array){ if (array == null || array.length == 0) return null; int[] multiArr = new int[array.length]; multiArr[0] = 1; for (int i = 1; i < array.length; i ++) multiArr[i] = multiArr[i-1] * array[i-1]; int tmp = 1; for (int i = array.length-2; i >= 0; i --){ tmp *= array[i + 1]; multiArr[i] *= tmp; } return multiArr; } @Test public void test(){ int[] array = {1, 2, 3, 4, 5}; int[] multiArr = multiply(array); System.out.println(Arrays.toString(multiArr)); }}
阅读全文
1 0
- 《剑指Offer》学习笔记--面试题52:构建乘积数组
- 【剑指Offer学习】【面试题52:构建乘积数组】
- 剑指offer-面试题52:构建乘积数组
- 剑指offer--面试题52:构建乘积数组
- 剑指Offer面试题52:构建乘积数组 Java实现
- 剑指Offer系列-面试题52:构建乘积数组
- 剑指offer-面试题52-构建乘积数组
- 剑指offer 面试题52 构建乘积数组
- 【剑指Offer】面试题52:构建乘积数组
- 【剑指Offer学习】【面试题52:构建乘积数组】
- 剑指offer——面试题52:构建乘积数组
- 【剑指offer】面试题66:构建乘积数组
- 面试题52:构建乘积数组
- 面试题52: 构建乘积数组
- 面试题52:构建乘积数组
- 《剑指offer》:[52]构建乘积数组
- 剑指Offer 52 构建乘积数组
- 【剑指offer】题52:构建乘积数组
- linux用户与组的管理(命令添加、手动添加、添加组、用户之间的切换)
- 命令行运行Python脚本时传入参数的三种方式
- 第八届 蓝桥杯 国赛 第一题 平方十位数
- 转:jQuery中$.getJSON的返回值问题
- Ribbon源码解析及常见问题
- 剑指offer 面试题52 构建乘积数组
- Centos安装以及Alisql,LNMP架构安装
- DEP&栈保护&ASLR 开启关闭
- 三个简单的n方的排序
- Python学习笔记 --- 对文本编码进行转换方法2
- python解决字典中的值是列表问题的方法
- extend的实现
- My-Blog搭建过程:如何让一个网站从零到可以上线访问
- 0强转为指针的用处