题目描述

给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。

示例:

输入: [1,2,3,4]
输出: [24,12,8,6]

说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。

进阶:
你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组不被视为额外空间。)

解题思路

首先从后往前遍历一遍,用结果数组来存储除当前数外的后面所有数的乘积,然后从前往后遍历,用nums存储除当前数外前面的所有数乘积,再把与结果数组乘积相乘得到除当前数以外所有数的乘积。

代码

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

最新文章

  1. 这个图片切换动画只用CSS3实现
  2. iOS开发之WebView
  3. Java动态、重写 理解
  4. iOS红马甲项目开发过程Bug总结(1)
  5. 【转】介绍设置Session失效的几种方法
  6. 第一个Sprint冲刺第七天
  7. 多线程程序设计学习(13)Active Object pattern
  8. PHP持续保有长连接,利用flush持续更新浏览器UI,下载进度条实现
  9. [Java I/O] TextFile 工具类
  10. 总结一下C++各个版本之间的功能扩充
  11. java利用“映射文件访问”(MapperByteBuffer)处理文件与单纯利用Buffer来处理文件的快慢比较
  12. Jenkins: 执行 PowerShell 命令
  13. 【有意思的BUG】未名
  14. Yii的URL助手
  15. 解决问题:CA_ERROR证书出错,请登录微信支付商户平台下载证书-企业付款到零钱接口(原创)
  16. 再谈树形dp
  17. 【Codeforces 332C】Students&#39; Revenge
  18. mybatis高级映射-一对多
  19. pytorch总结
  20. binlog cache size设置是否合理判断

热门文章

  1. JS ES5
  2. Angular 开发环境搭建
  3. element-ui 表格可编辑添加删除
  4. SQL Tuning 基础概述10
  5. docker 安装ps命令
  6. useradd 报Creating mailbox file: File exists
  7. List&lt;int&gt;转化为逗号链接的字符串
  8. python中F/f表达式优于format()表达式
  9. 关于PXELINUX的一些重要描述摘录
  10. Delphi ADO组件