Skip to content

Commit 5ad6133

Browse files
add kotlin solution for 1035 Uncrossed-Lines.kt
1 parent fdda4a3 commit 5ad6133

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class UncrossedLinesKotlin1035 {
2+
fun maxUncrossedLines(A: IntArray, B: IntArray): Int {
3+
val dynamicProgramming = Array(A.size + 1) { IntArray(B.size + 1) }
4+
for (indexA in A.indices) {
5+
for (indexB in B.indices) {
6+
dynamicProgramming[indexA + 1][indexB + 1] = when {
7+
A[indexA] == B[indexB] ->
8+
1 + dynamicProgramming[indexA][indexB]
9+
else ->
10+
maxOf(
11+
dynamicProgramming[indexA][indexB + 1],
12+
dynamicProgramming[indexA + 1][indexB]
13+
)
14+
}
15+
}
16+
}
17+
return dynamicProgramming[A.size][B.size]
18+
}
19+
}
20+
21+
fun main() {
22+
val solution = UncrossedLinesKotlin1035()
23+
// 2 3 2
24+
println(solution.maxUncrossedLines(intArrayOf(1, 4, 2), intArrayOf(1, 2, 4)))
25+
println(solution.maxUncrossedLines(intArrayOf(2, 5, 1, 2, 5), intArrayOf(10, 5, 2, 1, 5, 2)))
26+
println(solution.maxUncrossedLines(intArrayOf(1, 3, 7, 1, 7, 5), intArrayOf(1, 9, 2, 5, 1)))
27+
}

0 commit comments

Comments
 (0)