Judie 发表于 2023-6-3 12:17:03

【朱迪的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]
查看完整版本: 【朱迪的LeetCode刷题笔记】238. Product of Array Except Self #Medium #Python #C++