zoukankan      html  css  js  c++  java
  • LeetCode_4——寻找两个有序数组的中位数

    题目

    给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
    请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。
    你可以假设 nums1 和 nums2 不会同时为空。

    示例 1:
      nums1 = [1, 3]
      nums2 = [2]
    则中位数是 2.0

    示例 2:
      nums1 = [1, 2]
      nums2 = [3, 4]
    则中位数是 (2 + 3)/2 = 2.5

    解法一

    思路

      在不考虑时间复杂度的情况下

    步骤

    1. 首先将nums1,nums2放在同一个数组中进行排序
    2. 再将数组进行排序
    3. 若是奇数,则默认中位数位中间数,偶数则两数之商
    public static  double findMedianSortedArrays(int[] nums1, int[] nums2) {
            double num=0;
    
             //将nums1和nums2放入数组arrs中
            int length=nums1.length+nums2.length;
            int[] arrs=new int[length];
    
            for (int i=0;i <nums1.length ; i++) {
                arrs[i]=nums1[i];
            }
    
            int a;
            int b;
            int c=arrs.length-nums1.length;
            for(a=1, b=0;a<=c&&b<nums2.length;a++,b++) {
                int d=arrs.length-a;
                arrs[d]=nums2[b];
            }
    
            for (int i=0;i<arrs.length;i++){
                for (int j=i+1;j<arrs.length;j++){
                    if (arrs[i] > arrs[j]){
                        int tmp = arrs[i];
                        arrs[i] = arrs[j];
                        arrs[j] = tmp;
                    }
                }
            }
        
            int index=arrs.length/2;
            //取中位数
            if(arrs.length%2==0){
                //取余得0则为偶数
                num=(double) (arrs[index]+arrs[index-1])/2;
                System.out.println(arrs[index]+"+"+arrs[index-1]);
            }else {
                num=(double) arrs[index];
                System.out.println(arrs[index]);
            }
            return  num;
        }    
  • 相关阅读:
    世界排名第二的web前端框架bulma与Bootstrap框架的选择
    Bootstrap5中文手册翻译完毕
    RabbitMQ 学习一 了解+点对点模式
    仿京东搜索
    ES集成SpringBoot
    ElasticSearch
    权限管理整合springsecurity代码执行过程
    权限管理
    Gateway网关
    canal数据同步 客户端代码实现
  • 原文地址:https://www.cnblogs.com/echola/p/11009495.html
Copyright © 2011-2022 走看看