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

【算法day3】寻找两个正序数组的中位数

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

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

算法的时间复杂度应该为 O(log (m+n)) 。

https://leetcode.cn/problems/median-of-two-sorted-arrays/description/

在这里插入图片描述

class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        int mid = (nums1.size() + nums2.size()) / 2 - 1;
        int odds = (nums1.size() + nums2.size()) % 2;
        int mid_num1 = 0, mid_num2 = 0;

        int i = 0, j = 0, k = 0;
        // 偶数取均值,奇数取中间那个值
        while (i < nums1.size() && j < nums2.size() && k <= mid) {
            if (nums1[i] < nums2[j]) {
                mid_num1 = nums1[i];
                i++;
            } else {
                mid_num1 = nums2[j];
                j++;
            }
            k++;
        }
        while (i < nums1.size() && k <= mid) {
            mid_num1 = nums1[i];
            i++;
            k++;
        }
        while (j < nums2.size() && k <= mid) {
            mid_num1 = nums2[j];
            j++;
            k++;
        }
        if (i < nums1.size() && j < nums2.size()) {
            if (nums1[i] < nums2[j]) {
                mid_num2 = nums1[i];
            } else {
                mid_num2 = nums2[j];
            }
        } else if (i < nums1.size()) {
            mid_num2 = nums1[i];
        } else if (j < nums2.size()) {
            mid_num2 = nums2[j];
        }
        if (odds % 2 == 0) {
            float result = mid_num1 + mid_num2;
            return result / 2;
        } else {
            return mid_num2;
        }
    }
};

相关文章:

  • RK3588 安装ffmpeg6.1.2
  • 数据守护者:备份文件的重要性与自动化实践策略
  • CLIP模型使用方法
  • MapReduce技术概述**
  • java的jiraapi设置超时时间
  • Excel·VBA江西省预算一体化工资表一键处理
  • 【LeetCode 热题 100】11. 盛最多水的容器 | python 【中等】
  • Unity Shader编程】之基础纹理
  • Mac 上如何安装Mysql? 如何配置 Mysql?以及如何开启并使用MySQL
  • MySQL:CRUD(增删查改)
  • 鸿蒙Next-应用检测、安装以及企业内部商店的实现
  • 日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(19):(1)家族の呼び方(よびかた):家族人物(2)助词练习
  • FreeRTOS任务状态查询
  • 数据库原理5
  • JavaScript系列06-深入理解 JavaScript 事件系统:从原生事件到 React 合成事件
  • Greenplum6.19集群搭建
  • 【云岚到家】-实战问题(上)
  • ubuntu 20.04 C++ 源码编译 cuda版本 opencv4.5.0
  • STM32驱动OLED屏幕全解析:从原理到温度显示实战(上) | 零基础入门STM32第五十三步
  • 人工智能与深度学习的应用案例解析及代码实现
  • 成都酒店网站建设/今日深圳新闻最新消息
  • 忻州网站建设网站推广/杭州seo排名收费
  • 2019做网站需要营业执照吗/网络整合营销4i原则是指
  • 宝鸡手机版网站建设/企业网站开发制作
  • 旅行网站建设毕业论文文档/推广普通话手抄报简单又好看内容
  • 做网站公司融资多少钱/个人开发app可以上架吗