Skip to content

Commit d9cf0f6

Browse files
authored
feat: 2348. Number of Zero-Filled Subarrays (#225)
Signed-off-by: ashing <[email protected]>
1 parent 24f1c43 commit d9cf0f6

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package _348
2+
3+
func zeroFilledSubarray(nums []int) (ans int64) {
4+
c := 0
5+
for _, num := range nums {
6+
if num == 0 {
7+
c++
8+
ans += int64(c)
9+
} else {
10+
c = 0
11+
}
12+
}
13+
return
14+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package _348
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func TestZeroFilledSubarray(t *testing.T) {
8+
tests := []struct {
9+
nums []int
10+
expect int64
11+
}{
12+
{[]int{0, 0, 1, 0, 0, 0, 1}, 9},
13+
{[]int{0, 1, 0, 1, 0, 0, 1}, 5},
14+
{[]int{1, 1, 1, 1, 1}, 0},
15+
{[]int{0, 0, 0, 0, 0}, 15},
16+
{[]int{}, 0},
17+
}
18+
19+
for _, test := range tests {
20+
got := zeroFilledSubarray(test.nums)
21+
if got != test.expect {
22+
t.Errorf("zeroFilledSubarray(%v) = %v, expect %v", test.nums, got, test.expect)
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)