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

【力扣】4.寻找两个正序数组的中位数

题目描述

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

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

示例 1:

输入:nums1 = [1,3], nums2 = [2]
输出:2.00000
解释:合并数组 = [1,2,3] ,中位数 2

示例 2:

输入:nums1 = [1,2], nums2 = [3,4]
输出:2.50000
解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5

提示:

  • nums1.length == m
  • nums2.length == n
  • 0 <= m <= 1000
  • 0 <= n <= 1000
  • 1 <= m + n <= 2000
  • -106 <= nums1[i], nums2[i] <= 106

AC代码

class Solution {
public:double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {double ans;vector<double> num(2002);int m = nums1.size(), n = nums2.size(), m1 = 0, n1 = 0;int len = m + n;for (int i = 0; i <= len / 2; i++) {if (n1 == n) {num[i] = nums1[m1];m1++;}else if (m1 == m) {num[i] = nums2[n1];n1++;}else{num[i] = (nums1[m1] >= nums2[n1]) ? nums2[n1] : nums1[m1];if (nums1[m1] >= nums2[n1]) n1++;else m1++;}if ((m1 + n1) > (len / 2 + 1)) break;}if (len % 2) ans = num[len/2];else ans = (num[len/2-1] + num[len/2]) / 2.0;return ans;}
};

http://www.lryc.cn/news/417751.html

相关文章:

  • 【C++】初识面向对象:类与对象详解
  • 知识图谱学习总结
  • 2021-10-23 51单片机LED1-8按秒递增闪烁
  • 在Linux中宏观的看待线程
  • 提示libfakeroot.so或libfakeroot-sysv.so出错处理方法
  • 【计算机网络】什么是socket编程?以及相关接口详解
  • LeetCode.19.删除链表的倒数第n个节点
  • vue-cesium
  • 《npm 学习过程中遇到的诸多问题》
  • CentOS 介绍
  • 模拟面试题1
  • CTFHUB-web-RCE-综合过滤练习
  • Leetcode75-7 除自身以外数组的乘积
  • AI绘画工具介绍:以新奇角度分析与探索AI绘画艺术与技术的交汇点
  • 基于Springboot + Vue的宿舍管理系统
  • CTFHUB-web-RCE-eval执行
  • Oracle DBA常用 sql
  • MindSearch:AI 时代的“思考型”搜索引擎
  • 机器学习练手(四):基于SVM 的肥胖风险分类
  • AutoGPT项目实操总结
  • uniapp 荣耀手机 没有检测到设备 运行到Android手机 真机运行
  • 【EtherCAT】Windows+Visual Studio配置SOEM主站——静态库配置+部署
  • 【Python小游戏示例:猜拳游戏】
  • 多态实现的必要条件,实现多态的三个方法,输入一个URL的过程,死锁产生的原理和条件,进程和线程的定义及区别,进程通信的几种方式
  • Springboot+MybatisPlus项目中,数据库表中存放Date,查出后转为String
  • JavaDS —— AVL树
  • NSSCTF练习记录:[SWPUCTF 2021 新生赛]jicao
  • LabVIEW位移检测系统
  • 02、MySQL-DML(数据操作语言)
  • vue3 项目部署到线上环境,初始进入系统,页面卡顿大概一分钟左右,本地正常无卡顿。localStorage缓存1MB数据导致页面卡顿。