Median of Two Sorted Arrays
2015-07-01 22:09
120 查看
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
问题描述:给定两个有序数组,从这两个有序数组中找到中值。进行详细描述,我们使用归并排序,将两个有序数组进行合并得到ret,然后只针对数组ret进行操作,得到数组元素个数len,如果len是奇数,则直接返回数组中的第len/2个,如果len是偶数,则返回len/2和len/2-1个元素的平均值,很明显的,使用归并排序即可,做这个题,俺是没看明白题目。。。一边做,看输出结果一边思考。。。
问题描述:给定两个有序数组,从这两个有序数组中找到中值。进行详细描述,我们使用归并排序,将两个有序数组进行合并得到ret,然后只针对数组ret进行操作,得到数组元素个数len,如果len是奇数,则直接返回数组中的第len/2个,如果len是偶数,则返回len/2和len/2-1个元素的平均值,很明显的,使用归并排序即可,做这个题,俺是没看明白题目。。。一边做,看输出结果一边思考。。。
class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int i = 0, j =0; int k = i; vector<int> ret; while (i < nums1.size() && j < nums2.size()) { if (nums1.at(i) < nums2.at(j)) { ret.push_back(nums1.at(i++)); } else { ret.push_back(nums2.at(j++)); } } while (i < nums1.size()) { ret.push_back(nums1.at(i++)); } while (j < nums2.size()) { ret.push_back(nums2.at(j++)); } i = ret.size(); if (i % 2 == 0) { return (ret.at(i / 2) + ret.at(i / 2 - 1))*1.0 / 2; } else { return ret.at(i/2); } } };
相关文章推荐
- JavaScript权威指南_117_第15章_脚本化文档_15.2-选取文档元素-通过CSS选择器选取元素
- 如此——程序媛的一天
- Project Euler:Problem 53 Combinatoric selections
- 简单的底部菜单 类似微信订阅号里面的底部菜单
- PAT Advanced 1093. Count PAT's (25) 同 PAT Basic 1040
- 学习空间数据挖掘的总结
- ReactNavtive框架教程(2)
- 双击事件
- 戴尔服务器impi 设置
- Android UI中像素相关的名词解释
- oracle SQL语句
- php统计数组元素个数
- Pascal's Triangle
- 在EF的code frist下写稳健的权限管理系统:开篇(一)
- 【学习】序列DP
- BZOJ4158 : [POI2007]Railway
- 调用有道词典查词
- CSDN第一个博客,也是人生的第一个,哈哈哈
- MyBatis数据持久化(十)与Spring4整合
- MyBatis数据持久化(十)与Spring4整合