JAVA实现两个序列的中位数_LeetCode——两个排序数组的中位数(Java)
发布日期:2021-06-24 15:51:07 浏览次数:2 分类:技术文章

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

给定两个大小为 m 和 n 的有序数组 nums1和 nums2。

请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。

示例 1:nums1 = [1, 3]

nums2 = [2]

中位数是 2.0

示例 2:nums1 = [1, 2]

nums2 = [3, 4]

中位数是 (2 + 3)/2 = 2.5class Solution {

public double findMedianSortedArrays(int[] nums1, int[] nums2) {

int nums1L = nums1.length;

int nums2L = nums2.length;

double result = 0;

int i = 0, j = 0, k = 0;

int[] num = new int[nums1L + nums2L];

while(i < nums1L && j < nums2L){

if(nums1[i] < nums2[j]) num[k++] = nums1[i++];

else num[k++] = nums2[j++];

}

while(i == nums1L && j < nums2L){

num[k++] = nums2[j++];

}

while(i < nums1L && j == nums2L){

num[k++] = nums1[i++];

}

if(num.length % 2 == 0){

result = ((double)(num[num.length / 2] + num[num.length / 2 -1]))/2;

}

else{

result = (double)(num[num.length / 2]);

}

return result;

}

}

转载地址:https://blog.csdn.net/weixin_33642922/article/details/115090098 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:如何修改php配置文件,Linux下如何修改PHP配置文件路径
下一篇:php转换java工具_6款程序员必备的开源中文汉字拼音转换及处理工具 (PHP Java .net)...

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月14日 20时52分07秒