一个长度为 n 的整形数组nums,其中 n > 1,返回一个数组 output ,其中 output[i] 等于nums中除nums[i]以外所有元素的乘积。
不用除法 且在O(n)内解决这个问题。
例如,输入 [1,2,3,4],返回 [24,12,8,6]。
进阶:
你可以在常数空间复杂度内解决这个问题吗?(注意:出于空间复杂度分析的目的,输出数组不被视为额外空间。)
详见:https://leetcode.com/problems/product-of-array-except-self/description/

Java实现:

class Solution {
public int[] productExceptSelf(int[] nums) {
int n=nums.length;
int[] f=new int[n];
int[] b=new int[n];
int[] r=new int[n];
Arrays.fill(f,1);
Arrays.fill(b,1);
for(int i=0;i<n-1;++i){
f[i+1]=f[i]*nums[i];
}
for(int i=n-1;i>0;--i){
b[i-1]=b[i]*nums[i];
}
for(int i=0;i<n;++i){
r[i]=f[i]*b[i];
}
return r;
}
}

C++实现:

class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
int n=nums.size();
vector<int> f(n,1),b(n,1),res(n);
for(int i=0;i<n-1;++i)
{
f[i+1]=f[i]*nums[i];
}
for(int i=n-1;i>0;--i)
{
b[i-1]=b[i]*nums[i];
}
for(int i=0;i<n;++i)
{
res[i]=f[i]*b[i];
}
return res;
}
};

参考:https://www.cnblogs.com/grandyang/p/4650187.html

最新文章

  1. NOSDK--一键打包的实现(四)
  2. python splinter
  3. Javascript里,想把一个整数转换成字符串,字符串长度为2
  4. ehcache基本原理
  5. Java多线程——线程同步
  6. Spring 3.0就这么简单读书笔记
  7. cmake学习笔记(五)
  8. TOMCAT的域名配置
  9. 读书笔记—CLR via C#异常和状态管理
  10. tensorflow softplus应用
  11. Leetcode_169_Majority Element
  12. 软工+C(11): 从命令行开始逐步培养编程能力(Java)
  13. [转帖]IIS内虚拟站点配置信息说明
  14. A2W,W2A等的使用
  15. s5-2 Cpu调度算法
  16. LeetCode 633. 平方数之和
  17. 摄像头驱动OV7725学习笔记连载(一):OV7725 电器特性和时序图
  18. Centos重新启动网络配置文件,/etc/resolv.conf被覆盖或清空问题解决
  19. Codeforces Round #246 (Div. 2) D E
  20. maven 插件jetty/tomcat启动 web 应用

热门文章

  1. ajax 请求 get请求成功,post 404 not found
  2. Elasticsearch学习系列之多文档操作mget
  3. 《Java设计模式》之接口模式
  4. Unity3D研究之多语言用中文做KEY
  5. docker 默认用户和密码
  6. react 中的 setState
  7. 【bzoj1260】[CQOI2007]涂色paint
  8. Explicit Interface Implementation (C# Programming Guide)
  9. shell脚本自动更新git
  10. bzoj2763 [JLOI2011]飞行路线——分层图