Skip to content

Commit 89c6ae7

Browse files
authored
Merge pull request #136 from MagicienDeCode/master
add kotlin solution for 525 Contiguous-Array.kt
2 parents a53bb81 + 7936cb2 commit 89c6ae7

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
class ContiguousArrayKotlin525 {
2+
3+
fun findMaxLength(nums: IntArray): Int {
4+
val dpMap: MutableMap<Int, Int> = HashMap()
5+
var max = 0
6+
var sum = 0
7+
dpMap[0] = -1
8+
for (index in nums.indices) {
9+
sum += nums[index].times(2).minus(1)
10+
when {
11+
dpMap.containsKey(sum) -> max = maxOf(max, index - dpMap.getValue(sum))
12+
else -> dpMap[sum] = index
13+
}
14+
}
15+
return max
16+
}
17+
}
18+
19+
fun main() {
20+
val solution = ContiguousArrayKotlin525()
21+
println(solution.findMaxLength(intArrayOf(0, 1, 1, 0, 1, 1, 1, 0)))
22+
// 6 2 2 8 2
23+
println(solution.findMaxLength(intArrayOf(0, 1, 0, 0, 1, 0, 1, 0)))
24+
println(solution.findMaxLength(intArrayOf(0, 1)))
25+
println(solution.findMaxLength(intArrayOf(0, 1, 0)))
26+
println(solution.findMaxLength(intArrayOf(0, 0, 0, 1, 1, 0, 1, 1, 1, 1)))
27+
println(solution.findMaxLength(intArrayOf(1, 0)))
28+
}

0 commit comments

Comments
 (0)