博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
238. Product of Array Except Self (Array)
阅读量:5019 次
发布时间:2019-06-12

本文共 1214 字,大约阅读时间需要 4 分钟。

算出前后的乘积 最后再相加

 

1 class Solution { 2     public int[] productExceptSelf(int[] nums) { 3         int size = nums.length; 4         int[] result = new int[size]; 5         int[] fwd = new int[size], bwd = new int[size]; 6         fwd[0] = 1; bwd[size - 1] = 1; 7         for(int i = 1; i < nums.length; i++) { 8             fwd[i] = fwd[i - 1] * nums[i - 1]; 9         }10         for(int j = size - 2; j >= 0; j--) {11             bwd[j] = bwd[j + 1] * nums[j + 1];12         }13         for(int k = 0; k < nums.length; k++) {14             result[k] = fwd[k] * bwd[k];15         }16         return result;17     }18 }

 

 

优化的方法是不用单独算出前后乘积,直接把前面的乘积放进result数组里,然后再用后面的乘积直接乘result的各个元素

 

100%:

 

1 class Solution { 2     public int[] productExceptSelf(int[] nums) { 3         int size = nums.length; 4         int[] result = new int[size]; 5         result[0] = 1; int bwd = 1; 6         for(int i = 1; i < nums.length; i++) { 7             result[i] = result[i - 1] * nums[i - 1]; 8         } 9         for(int j = size - 1; j >= 0; j--) {10             result[j] = result[j] * bwd;11             bwd *= nums[j];12             13         }14         return result;15     }16 }

 

转载于:https://www.cnblogs.com/goPanama/p/Array.html

你可能感兴趣的文章
Redis的Pub/Sub客户端实现
查看>>
DirectFB 之 动画播放初步
查看>>
SQL日常问题和技巧——持续更新
查看>>
springMVC入门(一)------springMVC基本概念与安装
查看>>
Sam做题记录
查看>>
[bzoj] 2453 维护数列 || 单点修改分块
查看>>
IIS版本变迁
查看>>
使用Gzip压缩提升WEB服务器性能
查看>>
BZOJ3884: 上帝与集合的正确用法 拓展欧拉定理
查看>>
mybatis09--自连接一对多查询
查看>>
myeclipse10添加jQuery自动提示的方法
查看>>
【eclipse jar包】在编写java代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可。...
查看>>
视频监控 封装[PlayCtrl.dll]的API
查看>>
软件工程APP进度更新
查看>>
Python 使用正则替换 re.sub
查看>>
CTF中那些脑洞大开的编码和加密
查看>>
简化工作流程 10款必备的HTML5开发工具
查看>>
c++ 调用外部程序exe-ShellExecuteEx
查看>>
Java进击C#——语法之知识点的改进
查看>>
IdentityServer流程图与相关术语
查看>>