fun mergeArrays(arr1: List<Int>, arr2: List<Int>): List<Int> {
val merged = mutableListOf<Int>()
var i = 0
var j = 0
// Merge while both lists have elements
while (i < arr1.size && j < arr2.size) {
if (arr1[i] < arr2[j]) {
merged.add(arr1[i])
i++
} else {
merged.add(arr2[j])
j++
}
}
// Append remaining elements
merged.addAll(arr1.subList(i, arr1.size))
merged.addAll(arr2.subList(j, arr2.size))
return merged
}
fun main() {
val arr1 = listOf(1, 3, 5, 7, 8, 9, 9)
val arr2 = listOf(2, 3, 4, 5, 6, 9)
val result = mergeArrays(arr1, arr2)
println(result)
}
/*
run:
[1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 9, 9]
*/