当前位置: 首页 > article >正文

寻找两个正序数组的中位数

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
       int[] nums;
       int m=nums1.length;
       int n=nums2.length; 
       nums=new int[m+n];
       if(m==0){
        if(n%2==0){
            return (nums2[n/2-1]+nums2[n/2])/2.0;
        }
        else{
            return nums2[n/2];
        }
       }

       if(n==0){
        if(m%2==0){
            return (nums1[m/2-1]+nums1[m/2])/2.0;
        }
        else{
            return nums1[m/2];
        }
       }
       int count=0;
       int i=0,j=0;
       while(count!=(m+n)){
        if(i==m){
            while(j!=n)
            {
                nums[count++]=nums2[j++];
            }
            break;
        }
        if (j == n) {
            while (i != m) {
                nums[count++] = nums1[i++];
            }
            break;
        }
if(nums1[i]<nums2[j]){
    nums[count++]=nums1[i++];
}
else
{
    nums[count++]=nums2[j++];
}
       }
       if(count%2==0){
        return (nums[count/2-1]+nums[count/2])/2.0;
       }
       else{
        return nums[count/2];
       }
    }
}
  • m == 0的情况:如果nums1数组为空,直接计算nums2数组的中位数。若n为偶数,中位数是中间两个数的平均值;若n为奇数,中位数就是中间的那个数。
  • n == 0的情况:如果nums2数组为空,直接计算nums1数组的中位数。同样,根据m的奇偶性来确定中位数的计算方式。
  • count:用于记录合并后数组nums的当前索引。
  • inums1数组的当前索引。
  • jnums2数组的当前索引。
  • 使用while循环,只要count不等于m + n,就继续合并操作。
  • 如果i达到m,说明nums1数组已经遍历完,将nums2数组剩余的元素依次添加到nums数组中。
  • 如果j达到n,说明nums2数组已经遍历完,将nums1数组剩余的元素依次添加到nums数组中。
  • nums1[i] < nums2[j],将nums1[i]添加到nums数组中,并将icount加 1;否则,将nums2[j]添加到nums数组中,并将jcount加 1。

http://www.kler.cn/a/613040.html

相关文章:

  • 启山智软实现b2c单商户商城对比传统单商户的优势在哪里?
  • 多省发布!第27届中国机器人及人工智能大赛各赛区比赛通知
  • 怎么在一台服务器上配置两套不同的前后端分离系统
  • 安装Webpack并创建vue项目
  • QT_demo1_calculator
  • 跨境TRS投资操作指南与系统解决方案
  • 关于bug总结记录
  • Java 中各种锁的使用详解
  • Node.js 如何发布一个 NPM 包——详细教程
  • 第R9周:阿尔兹海默症诊断(优化特征选择版)
  • 美摄科技智能汽车车内实时AR特效方案,让出行充满乐趣
  • 神经网络知识
  • 【极速版 -- 大模型入门到进阶】LORA:大模型轻量级微调
  • 智能网联交通加速落地,光路科技TSN技术助推车路云一体化发展
  • 跟着尚硅谷学vue-day1
  • LeetCode 1492 n的第K个因子
  • 浅谈工商企业用电管理的分布式储能设计
  • window系统下安装elk
  • unity一个图片的物体,会有透明的效果
  • 【机器学习】从回声定位到优化引擎:蝙蝠算法在SVR超参数优化中的应用