Skip to content

Commit fcd9d00

Browse files
committed
product-of-array-except-self solved
1 parent d21dcff commit fcd9d00

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
///정수배열 nums가 주어질때 정수배열 answer를 반환하시오
2+
///answer의 각 요소는 nums의 같은 인덱스의 요소를 제외한 나머지 요소의 곱
3+
4+
//복잡도 O(n)
5+
class Solution {
6+
func productExceptSelf(_ nums: [Int]) -> [Int] { //nums = 1,2,3,4
7+
let n = nums.count
8+
var answer = [Int](repeating: 1, count: n) //answer = 1,1,1,1
9+
var left = [Int](repeating: 1, count: n) //left = 1,1,1,1
10+
11+
let revNums = Array(nums.reversed()) //revNums = 4,3,2,1
12+
var right = [Int](repeating: 1, count: n) //right = 1,1,1,1
13+
14+
for i in 1..<n { //i = 1,2,3
15+
left[i] = left[i-1] * nums[i-1] //left = 1,1,2,6
16+
right[i] = right[i-1] * revNums[i-1] //right = 1,4,12,24
17+
}
18+
19+
for i in answer.indices {
20+
answer[i] = left[i] * right[n-i-1]
21+
}
22+
23+
return answer
24+
25+
}
26+
}

0 commit comments

Comments
 (0)