-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathSolution.kt
34 lines (30 loc) · 1.03 KB
/
Solution.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* Created by Inno Fang on 2018/2/15.
*/
/**
* 2080 / 2080 test cases passed.
* Status: Accepted
* Runtime: 568 ms
*/
class Solution {
fun findMedianSortedArrays(nums1: IntArray, nums2: IntArray): Double {
var i = 0; var j = 0
val store = mutableListOf<Int>()
(0 until nums1.size + nums2.size).forEach {
if (i < nums1.size && j < nums2.size) {
if (nums1[i] <= nums2[j]) store.add(nums1[i++])
else store.add(nums2[j++])
}
if (i == nums1.size && j < nums2.size) store.add(nums2[j++])
else if (j == nums2.size && i < nums1.size) store.add(nums1[i++])
}
return store.size.let {
if (it and 1 == 0) (store[it / 2] + store[it / 2 - 1]) / 2.0
else store[it / 2].toDouble()
}
}
}
fun main(args: Array<String>) {
Solution().findMedianSortedArrays(intArrayOf(1, 3), intArrayOf(2)).let(::println)
Solution().findMedianSortedArrays(intArrayOf(1, 2), intArrayOf(3, 4)).let(::println)
}