We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 3c42db4 + 5a35725 commit aae4031Copy full SHA for aae4031
Array/ProductExceptSelf.swift
@@ -7,21 +7,20 @@
7
8
class ProductExceptSelf {
9
func productExceptSelf(_ nums: [Int]) -> [Int] {
10
- var res = Array(repeating: 1, count: nums.count)
11
- var right = 1
12
-
13
- guard nums.count > 0 else {
14
- return res
+ var zeroCount = 0
+ let total = nums.reduce(1) {
+ if $1 == 0 {
+ zeroCount += 1
+ }
15
+ return $0 * ($1 == 0 ? 1 : $1)
16
}
17
- for i in 1..<nums.count {
18
- res[i] = res[i - 1] * nums[i - 1]
19
- }
20
- for i in (0..<nums.count).reversed() {
21
- res[i] = right * res[i]
22
- right = right * nums[i]
23
24
25
+ if zeroCount > 1 {return nums.map({_ in return 0})}
+ return nums.map({
+ if zeroCount == 1 {
+ return ($0 == 0 ? total : 0)
+ } else {
+ return ($0 == 0 ? total : total / $0)
+ })
26
27
0 commit comments