C/C++教程

LeetCode——4. 寻找两个正序数组的中位数

本文主要是介绍LeetCode——4. 寻找两个正序数组的中位数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 题目
    • 1.链接
    • 2.题目描述
    • 3.解题思路
    • 4.题解

题目

1.链接

传送门–>4. 寻找两个正序数组的中位数.

2.题目描述

在这里插入图片描述

在这里插入图片描述

3.解题思路

思路和算法

简单粗暴,先将两个数组合并,两个有序数组的合并也是归并排序中的一部分。然后根据奇数,还是偶数,返回中位数。

4.题解

合并vector,排序

class Solution {
public:
    double findMedianSortedArrays(vector<int>& a, vector<int>& b)
     {
         int len1=a.size();
         int len2=b.size();
         vector<int>s(len1+len2);
         s=a;
         for(int i=0;i<len2;i++)
         {
             s.push_back(b[i]);
         }
         sort(s.begin(),s.end());
         if((len1+len2)%2!=0)
         {
             return s[(len1+len2)/2];
         }
         else
         return (s[(len1+len2)/2-1]+s[(len1+len2)/2])/2.0;
    }
};

在这里插入图片描述

/

这篇关于LeetCode——4. 寻找两个正序数组的中位数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!