1. Problem
238 Product of Array Except Self
Medium
12160
740
Add to List
Share
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 = [1,2,3,4]
Output: [24,12,8,6]
Example 2:
Input: nums = [-1,1,0,-3,3]
Output: [0,0,9,0,0]
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.
2. My solved
어떻게든 풀어보려고 했는데, 아이디어가 떠오르지 않았다. 거의 내가 하는 풀이는 O(N^2) 이어서 시간초과가 계속났다.
3. Referance
<code />
def productExceptSelf(self, nums: List[int]) -> List[int]:
answer = []
tmp = 1
size = len(nums)
# left
for i in range(size):
answer.append(tmp)
tmp *= nums[i]
# rigth
tmp = 1
for i in range(size-1, -1, -1):
answer[i] *= tmp
tmp *= nums[i]
return answer
뭔가 깨닫게 되는 풀이었다. 오른쪽 왼쪽 배열을 한번씩 순회하기 때문에 O(N)으로 시간복잡도는 해결되었다.
아이디어를 보자면 왼쪽 오른쪽 도는 것을 따로 생각한 것이 컸던 것 같다.
'LeetCode' 카테고리의 다른 글
[Algorithm] LeetCode #6 Maximum Product Subarray (0) | 2022.05.12 |
---|---|
[Algorithm] LeetCode #5 Maximum Subarray (0) | 2022.05.11 |
[Algorithm] LeetCode #3 Contains Duplicate (0) | 2022.05.10 |
[Algorithm] LeetCode #2 Best time to buy and sell stock (0) | 2022.05.08 |
[Algorithm] LeetCode #1 Two Sum solved (0) | 2022.05.08 |