【LeetCode】238. Product of Array Except Self
来源:互联网 发布:麦当劳上海数据 编辑:程序博客网 时间:2024/06/05 18:06
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 of nums
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.)
class Solution {public: vector<int> productExceptSelf(vector<int>& nums) {vector<int> results;int length_nums = nums.size();int p = 1;results.push_back(1);results.push_back(nums.at(0));for (int i = 2; i<length_nums; i++){results.push_back(nums[i-1]*results[i-1]);}p = nums.at(length_nums - 1);for (int i = (length_nums - 2);i>=0 ; i--){results[i] = p*results[i];p = p*nums[i];}return results;}};
说来也很惭愧,这样级别的思考靠我自己想是想不出来的。得靠别人的点拨。
不能使用除法,除了结果的向量以外只能使用常数级别的空间,而且时间复杂度为O(n)
其实道理就很简单,将数组遍历两次。
第一次将每个数的左边的所有数的乘积记录下来在数组当中。
第二次将每个数的右边的所有数的乘积和第一次记录下来的数相乘便可以完整得到除了该数自己的所有数的乘积
0 0
- [leetcode] 238.Product of Array Except Self
- [LeetCode]238.Product of Array Except Self
- [leetcode] 238. Product of Array Except Self
- Leetcode 238. Product of Array Except Self
- [LeetCode]238. Product of Array Except Self
- 238. Product of Array Except Self LeetCode
- LeetCode 238. Product of Array Except Self
- [LeetCode]238. Product of Array Except Self
- LeetCode *** 238. Product of Array Except Self
- LeetCode 238. Product of Array Except Self
- 【leetcode】238. Product of Array Except Self
- leetcode-238. Product of Array Except Self
- Leetcode 238. Product of Array Except Self
- 【leetcode】238. Product of Array Except Self
- LeetCode- 238. Product of Array Except Self
- leetcode 238. Product of Array Except Self
- 【leetcode】238. Product of Array Except Self
- leetcode:238. Product of Array Except Self
- RN填坑----iOS给控件设置背景图片无效
- 拨号器
- Android 文件转换大小
- 判断设备是否安装了app
- mysql简单存储过程范例
- 【LeetCode】238. Product of Array Except Self
- Sip协议结合Wireshark研究
- iOS 多线程篇4—线程间的通信
- kaldi command not found
- 统计字数v2.0
- MySQL开启慢查询
- Eclipse 中 program arguments 与 VM arguments 的区别
- spring工作原理
- iOS 公开项目