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