class Solution {
public double findMedianSortedArrays(int[] A, int[] B) {
int m = A.length;
int n = B.length;
if (m > n) { // to ensure m<=n
int[] temp = A; A = B; B = temp;
int tmp = m; m = n; n = tmp;
}
int iMin = 0, iMax = m, halfLen = (m + n + 1) / 2;
while (iMin <= iMax) {
int i = (iMin + iMax) / 2;
int j = halfLen - i;
if (i < iMax && B[j-1] > A[i]){
iMin = i + 1; // i is too small
}
else if (i > iMin && A[i-1] > B[j]) {
iMax = i - 1; // i is too big
}
else { // i is perfect
int maxLeft = 0;
if (i == 0) { maxLeft = B[j-1]; }
else if (j == 0) { maxLeft = A[i-1]; }
else { maxLeft = Math.max(A[i-1], B[j-1]); }
if ( (m + n) % 2 == 1 ) { return maxLeft; } int minRight = 0;
if (i == m) { minRight = B[j]; }
else if (j == n) { minRight = A[i]; }
else { minRight = Math.min(B[j], A[i]); } return (maxLeft + minRight) / 2.0;
}
}
return 0.0;
}
}

最新文章

  1. Intellij IDEA常用快捷键——Mac版
  2. (转)最强Android模拟器genymotion的安装与配置
  3. android 运行 python
  4. &lt;Chapter 2&gt;2-2-2.开发Python应用(Developing a Python App)
  5. SQL Server调优系列进阶篇 - 如何重建数据库索引
  6. vc笔记六
  7. Gulp-自动化编译sass和pug文件
  8. bootstrap表格添加按钮、模态框实现
  9. 【转载】Window服务器开机后一直处于蓝色屏幕(非蓝屏 crash)状态
  10. java30
  11. bzoj1741 [Usaco2005 nov]Asteroids 穿越小行星群 最小点覆盖
  12. URAL 1004 Sightseeing Trip(floyd求最小环+路径输出)
  13. ASP.NET AJAX入门系列(1):概述
  14. spring 代理注解 &lt;aop:aspectj-autoproxy /&gt;
  15. Unity绘制Png图片
  16. 二叉树—-1(No.9HN省赛小题)
  17. php取两个整数的最大公约数算法大全
  18. db2 托管事务未设置方法有问题
  19. Codeforces 632D Longest Subsequence 2016-09-28 21:29 37人阅读 评论(0) 收藏
  20. DAG最长路径

热门文章

  1. gunicorn+nginx配置方法
  2. Python学习之==&gt;线程&amp;&amp;进程
  3. delphi2010:按键 控制键 组合键的判断 响应
  4. window.screenLeft&amp;&amp;window.screenTop&amp;&amp;window.screenX&amp;&amp;window.screenY
  5. paramiko远程连接linux服务器进行上传下载文件
  6. yum安装php7
  7. cdh平台问题
  8. 剑指Offer编程题(Java实现)——删除链表中重复的结点
  9. 04: DjangoRestFramework使用
  10. Runnable、Callable和Future三者对比