leetcode刷题四<寻找两个有序数组的中位数>
给定两个大小为 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
思路简单直接撸代码吧
double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {
int numsSize=nums1Size+nums2Size;
int *nums=malloc(numsSize*sizeof(int));
int *numsTemp=nums;
int *numsEnd=nums+numsSize;
int *nums1End=nums1+nums1Size;
int *nums2End=nums2+nums2Size;
double dest=0.0;
while(numsTemp<numsEnd)
{
if(nums1<nums1End&&nums2<nums2End)
{
if(*nums1<*nums2)
{ *numsTemp++=*nums1++;}
else
{*numsTemp++=*nums2++;}
}
else
{if(nums1<nums1End)
{*numsTemp++=*nums1++;}
else if(nums2<nums2End)
{*numsTemp++=*nums2++;}
}
}
if(numsSize%2==0)
{ dest=(double)(nums[numsSize/2-1]+nums[numsSize/2])*1.0/2;}
else
{dest=(double)nums[(numsSize-1)/2];}
return dest;
}
leetcode刷题四<寻找两个有序数组的中位数>的更多相关文章
- Leetcode(4)寻找两个有序数组的中位数
Leetcode(4)寻找两个有序数组的中位数 [题目表述]: 给定两个大小为 m 和 n 的有序数组 nums1 和* nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O( ...
- leetcode刷题-88.合并两个有序数组
题目 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m ...
- leecode第四题(寻找两个有序数组的中位数)
题解: class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<i ...
- LeetCode第4题:寻找两个有序数组的中位数
double Solution::findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) ...
- LeetCode Golang 4. 寻找两个有序数组的中位数
4. 寻找两个有序数组的中位数 很明显我偷了懒, 没有给出正确的算法,因为官方的解法需要时间仔细看一下... func findMedianSortedArrays(nums1 []int, nums ...
- Java实现 LeetCode 4 寻找两个有序数组的中位数
寻找两个有序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 n ...
- 0004. 寻找两个有序数组的中位数(Java)
4. 寻找两个有序数组的中位数 https://leetcode-cn.com/problems/median-of-two-sorted-arrays/ 最简单的就是用最简单的,把两个数组分别抽出然 ...
- 寻找两个有序数组的中位数 C++实现leetcode系列(四)
给定两个大小为 m 和 n 的有序数组 nums1和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 nums2 不 ...
- Leetcode题库——4.寻找两个有序数组的中位数
@author: ZZQ @software: PyCharm @file: findMedianSortedArrays.py @time: 2018/10/10 19:24 说明:给定两个大小为 ...
随机推荐
- Tomcat系列(6)——Tomcat处理一个HTTP请求的过程
Tomcat的架构图 图三:Tomcat Server处理一个HTTP请求的过程 处理HTTP请求过程 假设来自客户的请求为:http://localhost:8080/test/index.js ...
- mysql之binlog
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日 ...
- sed命令(二)
转自:https://www.cnblogs.com/maxincai/p/5146338.html sed命令用法 sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用, ...
- 【知乎Live】狼叔:如何正确的学习Node.js
文章链接 https://i5ting.github.io/How-to-learn-node-correctly/#1 或在 https://github.com/i5ting/How-to-lea ...
- Linux学习之用户身份与文件权限
Linux学习之用户身份与文件权限 1 用户身份及能力 Linux系统的管理员之所以是root,并不是因为其名叫root,而是该用户身份号码数值(UID)为0. 管理员UID为0:系统的管理员用户 系 ...
- webpack配置less
webpack4.0把webpack.config.js隐藏起来了,需要先暴露出来,在webpack修改配置
- input下拉带输入框
html5 自带的datalist实现 html代码: <input list="students"> <datalist id="students&q ...
- js中函数和方法的区别
函数(function)是一段代码,需要通过名字来进行调用.它能将一些数据(函数的参数)传递进去进行处理,然后返回一些数据(函数的返回值),也可以不返回数据. 方法(method)是通过对象调用的ja ...
- Codeforces Round #552 (Div. 3) F. Shovels Shop(dp)
题目链接 大意:给你n个物品和m种优惠方式,让你买k种,问最少多少钱. 思路:考虑dpdpdp,dp[x]dp[x]dp[x]表示买xxx种物品的最少花费,然后遍历mmm种优惠方式就行转移就好了. # ...
- 同一台电脑同时装jdk1.8和jdk1.7
因为之前安装的eclipse版本要求JDK1.8或以上的版本,但在搭建SSH框架的时候老是报错,又找不到2错误源.老师建议换个低版本的jdk.所以jdk版本需要降级. 但降级以后就不能打开eclips ...