【朱迪的LeetCode刷题笔记】238. Product of Array Except Self #Medium #Python #C++
Given an integer array nums, return an array answer such that answer<i> is equal to the product of all the elements of nums except nums<i>.The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.
You must write an algorithm that runs in O(n) time and without using the division operation.
Example 1:
Input: nums =
Output:
Example 2:
Input: nums = [-1,1,0,-3,3]
Output:
Constraints:
2 <= nums.length <= 105
-30 <= nums<i> <= 30
The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.
Follow up:
Can you solve the problem in O(1) extra space complexity? (The output array does not count as extra space for space complexity analysis.)
Judy
Python
class Solution(object):
def productExceptSelf(self, nums):
"""
:type nums: List
:rtype: List
"""
a = 1
b = 1
l = len(nums)
answer = []
for x in nums:
answer.append(a)
a *= x
for i in range(l-1, -1, -1):
answer *= b
b *= nums
return answer
Mike
C++
vector<int> productExceptSelf(vector<int>& nums) {
vector<int> result;
int prod = 1;
for (auto i : nums) {
result.push_back(prod);
prod = i;
}
prod = 1;
for (int i = nums.size() - 1; i >= 0; i--) {
result= prod;
prod *= nums;
}
return result;
}
页:
[1]