Product of Array Except Self
来源:互联网 发布:美术字在线生成器软件 编辑:程序博客网 时间:2024/05/02 01:24
Given an array of n integers where n > 1, nums
, return an array output
such that output[i]
is equal to the product of all the elements ofnums
except nums[i]
.
Solve it without division and in O(n).
For example, given [1,2,3,4]
, return [24,12,8,6]
.
Follow up:
Could you solve it with constant space complexity? (Note: The output array does not count as extra space for the purpose of space complexity analysis.)
观察得到,每个位置的乘积 = 他左边所有数的乘积 × 他右边所有数的乘积;拆解为子问题,然而这两个子问题,很好解决,两边分别用两次扫描,乘积可以放到array里面。
public class Solution { public int[] productExceptSelf(int[] nums) { if(nums == null || nums.length == 0) return nums; int[] left = new int[nums.length]; left[0] = 1; for(int i=1; i<left.length; i++){ left[i] = left[i-1]*nums[i-1]; } int[] right = new int[nums.length]; right[nums.length-1] = 1; for(int i=right.length-2; i>=0; i--){ right[i] = right[i+1]*nums[i+1]; } for(int i=0; i<left.length; i++){ right[i] = right[i]*left[i]; } return right; }}
进一步优化,其实第二个array没必要,要保存的是一个前面乘积的中间值,用一个变量就可以了。
public class Solution { public int[] productExceptSelf(int[] nums) { int[] res = new int[nums.length]; res[0] = 1; for(int i=1; i<nums.length; i++){ res[i] = res[i-1]*nums[i-1]; } int temp = 1; for(int i=nums.length-2; i>=0; i--){ temp = temp*nums[i+1]; res[i] = res[i]*temp; } return res; }}
0 0
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Product of Array Except Self
- Android群英传之Android绘图机制与处理技巧
- 插件框架篇一之解决系统语言切换插件语言不变的问题
- 富文本
- UITableView的性能优化? 滑动的时候有种卡的感觉是为什么?怎么解决?
- 插件框架篇之Activity中theme、launchMode等设置问题
- Product of Array Except Self
- php基础和http知识介绍
- SparseArray解析
- 串口通信的基本概念
- 2016 Multi-University Training Contest 1 -1006 PowMod
- 安装vs2013的entityframework
- window消息处理模块
- 给自己技术发展之路上的意见
- 优雅的懒加载方法