gpt4 book ai didi

Java算法练习题,每天进步一点点(2)

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java算法练习题,每天进步一点点(2)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

题目描述

寻找两个正序数组的中位数 。

难度:困难 。

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 .

示例 1:

输入:nums1 = [1,3], nums2 = [2] 。

输出:2.00000 。

解释:合并数组 = [1,2,3] ,中位数 2 。

示例 2:

输入:nums1 = [1,2], nums2 = [3,4] 。

输出:2.50000 。

解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5 。

示例 3:

输入:nums1 = [0,0], nums2 = [0,0] 。

输出:0.00000 。

示例 4:

输入:nums1 = [], nums2 = [1] 。

输出:1.00000 。

示例 5:

输入:nums1 = [2], nums2 = [] 。

输出:2.00000 。

提示:

nums1.length == m 。

nums2.length == n 。

0 <= m <= 1000 。

0 <= n <= 1000 。

1 <= m + n <= 2000 。

-106 <= nums1[i], nums2[i] <= 106 。

解题思路

题目大意: 就是求中位数,如果数组有奇数个那就是求中间那个数即可,如果公有偶数个,那就是中间两个数的平均值.

解题思路: 有时候简单的思路往往可以解决问题,我们只需要在new一个长度为两个数组长度之和的空数组,然后把两个数组都放进去,然后sort一下,嗯没错直接sort就行,然后排好序后,就直接求出中间下标,判断下数组长度是不是偶数个,在分别处理即可 。

代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
  * Keafmd
  *
  * @ClassName: FindTheMedianOfTwoPositivelyOrderedArrays
  * @Description: 寻找两个正序数组的中位数
  * @author: 牛哄哄的柯南
  * @date: 2021-07-22 18:22
  */
  class Solution {
     public double findMedianSortedArrays( int [] nums1, int [] nums2) {
         int l1 = nums1.length;
         int l2 = nums2.length;
         int [] num = new int [l1+l2];
         int i= 0 ,j= 0 ;
         int k= 0 ;
         double res = 0 ;
         while (i<l1){
             num[k++] = nums1[i++];
         }
         while (j<l2){
             num[k++] = nums2[j++];
         }
         Arrays.sort(num);
         int sum_len = l1+l2;
         int mid = sum_len/ 2 ;
         if (sum_len% 2 == 0 ){
             res = (num[mid]+num[mid- 1 ])/ 2.0 ;
         } else {
             res = num[mid];
         }
         return res;
     }
}

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我的更多内容! 。

原文链接:https://blog.csdn.net/weixin_43883917/article/details/119023149 。

最后此篇关于Java算法练习题,每天进步一点点(2)的文章就讲到这里了,如果你想了解更多关于Java算法练习题,每天进步一点点(2)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com