• 寻找两个有序数组的中位数


    package main
    
    import "fmt"
    
    func findMedianSortedArrays(nums1 []int, nums2 []int) float64 {
    	//1.合并两个切片
    	//2.如果是奇数个,中间数就为的索引sum/2
    	//3.如果是偶数个,中间数就位的索引(sum/2 + sum/2+1)/2
    
    	nums1 = append(nums1, nums2...)
    	fmt.Println("排序前", nums1)
    	//冒泡排序
    	for j := 0; j < len(nums1)-1; j++ {
    		for i := 0; i < len(nums1)-1-i; i++ {
    			if nums1[i] > nums1[i+1] {
    				nums1[i+1], nums1[i] = nums1[i], nums1[i+1]
    			}
    
    		}
    	}
    	fmt.Println("排序后", nums1)
    	var middle float64
    	if len(nums1)%2 == 0 {
    		middle1 := nums1[len(nums1)/2-2]
    		middle2 := nums1[len(nums1)/2-1]
    		middle = float64((nums1[middle1] + nums1[middle2])) / 2
    
    	} else { //奇数个
    		index := len(nums1) / 2
    		middle = float64(nums1[index])
    
    	}
    	return middle
    
    }
    
    func main() {
    
    	//寻找两个有序数组的中位数
    	//nums1 = [1, 3]
    	//nums2 = [2]
    	//则中位数是 2.0
    
    	//nums1 = [1, 2]
    	//nums2 = [3, 4]
    	//则中位数是 (2 + 3)/2 = 2.5
    
    	num1 := []int{1, 3}
    	num2 := []int{2, 4, 5}
    	res := findMedianSortedArrays(num1, num2)
    	fmt.Println(res)
    }
    

      

  • 相关阅读:
    2013.11.19上班 任务:写文档
    js 时间比较和货币格式显示
    SQL优化
    多线程消费队列中的接口数据,接口数据来源是kafka
    List<Map<String, Object>> 中根据某一个属性进行排序
    ES查询操作
    Valid Sudoku
    Decode Ways
    Jump Game
    Best Time to Buy and Sell Stock II
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12317212.html
Copyright © 2020-2023  润新知