leetcode-4Median of Two Sorted Arrays
2015-06-23 20:49
337 查看
寻找2个有序表的中位数,直接递归搞。
import java.util.* ; public class Solution{ public double findMedianSortedArrays(int[] nums1, int[] nums2) { int n = nums1.length ; int m = nums2.length ; int d = n + m ; if((d & 1) == 1) return 1.0 * findKth(nums1, n, nums2, m, d/2 + 1) ; else return 0.5 * (findKth(nums1, n, nums2 , m, d/2) + findKth(nums1, n, nums2, m, d/2+1) ) ; } public int findKth(int[] a, int n , int[] b , int m , int k){ if(n > m) // ensure n <= m return findKth(b, m, a, n, k) ; if(n == 0) return b[k-1] ; if(k == 1) return Math.min(a[0], b[0]) ; int pa = Math.min(k/2 , n) ; int pb = k - pa ; if(a[pa-1] < b[pb-1]) return findKth(Arrays.copyOfRange(a, pa , n) , n-pa , b, m, k-pa) ; else if(a[pa-1] > b[pb-1]) return findKth(a, n, Arrays.copyOfRange(b, pb, m) , m - pb , k - pb) ; return a[pa-1] ; } public static void main(String[] args) { System.out.println(new Solution().findMedianSortedArrays(new int[]{1,2,3}, new int[]{6,7})) ; } }
相关文章推荐
- MFC Wizard创建的空应用程序中各个文件内容的解析
- 排序算法,堆算法实现TopK
- DSP中-stack和-heap的作用
- Python学习 之 OS模块
- 使用mysqldump进行mariadb的备份 推荐
- BZOJ3209 花神的嘲讽计划I
- 推荐系统
- MongoDB 备份/还原
- scala之尾递归_模板
- 如何更改windows7系统用户名
- Java多线程 多个生产者和多个消费者实现同步 jdk1.4
- 手动编译连接汇编程序遇到的问题
- 二分查找找一个数所在的范围
- C++ 中static 使用大全
- 微博舆情 之 自然语言处理
- 浅析JavaBean
- Ubuntu下配置Java环境JDK并配置
- MPMoviePlayerViewController和MPMoviePlayerController的使用
- JVM--类执行机制与JVM内存组成结构
- python使用get在百度搜索并保存第一页搜索结果