|
@@ -0,0 +1,53 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import "fmt"
|
|
|
+
|
|
|
+func main() {
|
|
|
+ var num1, num2 []int
|
|
|
+
|
|
|
+ num1 = []int{}
|
|
|
+ num2 = []int{}
|
|
|
+ fmt.Println(findMedianSortedArrays(num1, num2))
|
|
|
+
|
|
|
+ num1 = []int{1}
|
|
|
+ num2 = []int{}
|
|
|
+ fmt.Println(findMedianSortedArrays(num1, num2))
|
|
|
+
|
|
|
+ num1 = []int{1, 3}
|
|
|
+ num2 = []int{2}
|
|
|
+ fmt.Println(findMedianSortedArrays(num1, num2))
|
|
|
+
|
|
|
+ num1 = []int{1, 2}
|
|
|
+ num2 = []int{3, 4}
|
|
|
+ fmt.Println(findMedianSortedArrays(num1, num2))
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func findMedianSortedArrays(nums1 []int, nums2 []int) float64 {
|
|
|
+ var newNums []int
|
|
|
+ var indexN, indexM = 0, 0
|
|
|
+ for indexN <= len(nums1)-1 && indexM <= len(nums2)-1 {
|
|
|
+ if nums1[indexN] <= nums2[indexM] {
|
|
|
+ newNums = append(newNums, nums1[indexN])
|
|
|
+ indexN++
|
|
|
+ } else {
|
|
|
+ newNums = append(newNums, nums2[indexM])
|
|
|
+ indexM++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if indexN <= len(nums1)-1 {
|
|
|
+ newNums = append(newNums, nums1[indexN:]...)
|
|
|
+ }
|
|
|
+ if indexM <= len(nums2)-1 {
|
|
|
+ newNums = append(newNums, nums2[indexM:]...)
|
|
|
+ }
|
|
|
+
|
|
|
+ var length = len(newNums)
|
|
|
+ if length < 1 {
|
|
|
+ return float64(0)
|
|
|
+ }
|
|
|
+ if length%2 == 0 {
|
|
|
+ return float64(newNums[length/2-1]+newNums[length/2]) / 2
|
|
|
+ }
|
|
|
+ return float64(newNums[length/2])
|
|
|
+}
|