博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LintCode] 两个排序数组的中位数
阅读量:6947 次
发布时间:2019-06-27

本文共 1234 字,大约阅读时间需要 4 分钟。

1 class Solution { 2 public: 3     /** 4      * @param A: An integer array. 5      * @param B: An integer array. 6      * @return: a double whose format is *.5 or *.0 7      */ 8     double findMedianSortedArrays(vector
A, vector
B) { 9 // write your code here10 int m = A.size(), n = B.size();11 if (m > n) return findMedianSortedArrays(B, A);12 int imin = 0, imax = m, half = (m + n + 1) / 2, i, j, num1, num2;13 while (imin <= imax) {14 i = (imin + imax) / 2;15 j = half - i;16 if (j > 0 && i < m && B[j - 1] > A[i])17 imin = i + 1;18 else if (i > 0 && j < n && A[i - 1] > B[j])19 imax = i - 1;20 else {21 if (!i) num1 = B[j - 1];22 else if (!j) num1 = A[i - 1];23 else num1 = max(A[i - 1], B[j - 1]);24 break;25 }26 }27 if ((m + n) % 2) return num1;28 if (i == m) num2 = B[j];29 else if (j == n) num2 = A[i];30 else num2 = min(A[i], B[j]);31 return (num1 + num2) / 2.0;32 }33 };

 

转载于:https://www.cnblogs.com/jcliBlogger/p/4619975.html

你可能感兴趣的文章
LeetCode手记-Add Binary
查看>>
对DNSPOD添加域名解析的一些见解
查看>>
vim添加删除多行注释
查看>>
在caffe中增加和convolution相同的层
查看>>
Java设计模式(四) 装饰 代理模式
查看>>
patch与diff的恩怨
查看>>
蓝桥杯——先进的多说好树遍历
查看>>
Java系列笔记(4) - JVM监控与调优
查看>>
ORACLE工作原理小结
查看>>
LeetCode - Populating Next Right Pointers in Each Node
查看>>
管理团队时,怎样保证一直做正确的事?
查看>>
如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。...
查看>>
表单元素之搭车系
查看>>
mysql+redis
查看>>
[Android]Dagger2Metrics - 测量DI图表初始化的性能(翻译)
查看>>
sublime开启vim模式
查看>>
Rikka with Chess(规律)
查看>>
【设计模式】迭代器模式
查看>>
MATLAB中imshow()和image()
查看>>
Atitit.eclipse git使用
查看>>