【leetcode】4. Median of Two Sorted Arrays(Python & C++)
来源:互联网 发布:tushare mysql 编辑:程序博客网 时间:2024/06/07 01:30
4. Median of Two Sorted Arrays
题目链接
4.1 题目描述:
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)).
Example 1:
nums1 = [1, 3]
nums2 = [2]
The median is 2.0
Example 2:
nums1 = [1, 2]
nums2 = [3, 4]
The median is (2 + 3)/2 = 2.5
4.2 解题思路:
- 思路一:首先处理特殊情况,如果其中一个数组为空,则根据长度可直接返回另一个数组的中位数。否则同时遍历两个数组,将其按照顺序合并到一个数组中,然后根据长度即可返回中位数。
4.3 C++代码:
1、思路一代码(82ms):
class Solution93_1 {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { if (nums1.size() == 0 && nums2.size() == 0) return 0; if (nums1.size() == 0) { int l = nums2.size() / 2; if (nums2.size() % 2 == 0) return double(nums2[l - 1] + nums2[l]) / 2; else return double(nums2[l]); } if (nums2.size() == 0) { int l = nums1.size() / 2; if (nums1.size() % 2 == 0) return double(nums1[l - 1] + nums1[l]) / 2; else return double(nums1[l]); } int ll = (nums1.size() + nums2.size()) / 2; int lu = (nums1.size() + nums2.size()) % 2; int i = 0, j = 0; vector<int>a; while (i < nums1.size() && j < nums2.size()) { if (nums1[i] <= nums2[j]) { a.push_back(nums1[i]); i++; } else { a.push_back(nums2[j]); j++; } } while (i < nums1.size()) { a.push_back(nums1[i]); i++; } while (j < nums2.size()) { a.push_back(nums2[j]); j++; } if (lu == 0) return double(a[ll-1] + a[ll]) / 2; else return double(a[ll]); }};
4.4 Python代码:
1、思路一代码(118ms):
class Solution(object): def findMedianSortedArrays(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: float """ if len(nums1)==0 and len(nums2)==0: return 0 if len(nums1)==0: l = len(nums2) / 2 if len(nums2)% 2 == 0: return float(nums2[l - 1] + nums2[l]) / 2 else: return float(nums2[l]) if len(nums2)==0: l = len(nums1) / 2 if len(nums1)% 2 == 0: return float(nums1[l - 1] + nums1[l]) / 2 else: return float(nums1[l]) ll = (len(nums1) + len(nums2)) / 2 lu = (len(nums1) + len(nums2)) % 2 i = 0 j = 0 a=[] while i<len(nums1) and j<len(nums2): if nums1[i] <= nums2[j]: a.append(nums1[i]) i+=1 else: a.append(nums2[j]) j+=1 while i<len(nums1) : a.append(nums1[i]) i+=1 while j<len(nums2): a.append(nums2[j]) j+=1 if lu == 0: return float(a[ll-1]+a[ll])/2 else: return float(a[ll])
阅读全文
0 0
- 【leetcode】4. Median of Two Sorted Arrays(Python & C++)
- [LeetCode]2 Median of Two Sorted Arrays (C++,Python实现)
- Median of Two Sorted Arrays -- leetcode -- Python
- 【Leetcode】【python】Median of Two Sorted Arrays
- leetcode Median of Two Sorted Arrays (C)
- 4.Median of Two Sorted Arrays Leetcode Python
- [Leetcode]4. Median of Two Sorted Arrays @python
- LeetCode 4.Median of Two Sorted Arrays (Python)
- LeetCode 4. Median of Two Sorted Arrays(c++)
- [LeetCode]4.Median of Two Sorted Arrays
- LeetCode 4. Median of Two Sorted Arrays
- LeetCode --- 4. Median of Two Sorted Arrays
- [Leetcode] 4. Median of Two Sorted Arrays
- [LeetCode]4.Median of Two Sorted Arrays
- 【leetcode】4. Median of Two Sorted Arrays
- Leetcode-4.Median of Two Sorted Arrays
- LeetCode-4.Median of Two Sorted Arrays
- Leetcode 4. Median of Two Sorted Arrays
- qduoj 基础算法测验1
- zabbix手动关闭问题
- 程序员应该学习的知识图谱
- 开启Mac OS X ssh 服务器 与使用
- 上拉刷新,下拉加载
- 【leetcode】4. Median of Two Sorted Arrays(Python & C++)
- 14.耗时命令日志
- Linux下的lds链接脚本基础
- bootstrap fileinut插件详解
- Git12 stash
- [PAT]Emergency (25)@Java
- 【jzoj5335】【NOIP2017提高A组模拟8.24】【早苗】【矩阵乘法快速幂】
- Android零基础入门第44节:ListView数据动态更新
- c++初级 之 c语言的字符串cstring