欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 力扣题(3):寻找两个正序数组的中位数

力扣题(3):寻找两个正序数组的中位数

2025/3/29 18:52:18 来源:https://blog.csdn.net/m0_52563687/article/details/146509764  浏览:    关键词:力扣题(3):寻找两个正序数组的中位数

官方的答案我勉强可以知道思路,但是让我敲代码我敲不出来,我只能做出来两个时间复杂度比较高的方法来完成这道题,具体的算法后续再看能不能更深层次的进行理解再更新吧:

package test004;import java.util.Arrays;public class findArraysMidNumber {public static void main(String[] args) {int[] nums1 = {1,3,3};int[] nums2 = {2,4,9};System.out.println(findMedianSortedArrays(nums1, nums2));System.out.println(findMedianSortedArrays2(nums1, nums2));}/*** 方法一:指针定位*/public static double findMedianSortedArrays(int[] nums1, int[] nums2) {int n1 = nums1.length,n2 = nums2.length;//给两个数组定义指针int k1 = 0,k2 = 0;//中间数和中间数之前的数int pre = 0,current = 0;int totalLength = n1+n2;//总长度int middleIndex = totalLength/2;//因为索引是从0开始,所以不用考虑加一//遍历到中间数for (int i = 0; i <= middleIndex; i++) {//比较两个数组的相应位置的数字大小//那个数组的数字更小if (k1<n1 && (k2>=n2 || nums1[k1]<nums2[k2])){//就将那个数组指针当前指向的数字赋值给currentcurrent = nums1[k1];k1++;}else {current = nums2[k2];k2++;}}//判断奇偶数if (totalLength%2 == 0){//偶数return (pre+current)/2.0;}else {return current;}}/*** 方法二:合并数组*/public static double findMedianSortedArrays2(int nums1[],int nums2[]){int ints[] = Arrays.copyOf(nums1,nums1.length+nums2.length);/**arraycopy()方法参数的概述* src:这是源数组,也就是要从哪个数组中复制元素。它是一个 Object 类型的参数,意味着可以传入任意类型的数组,如 int[]、char[]、String[] 等。* srcPos:表示源数组中开始复制元素的起始位置,索引从 0 开始计数。* dest:目标数组,即元素要复制到的数组。同样,它也是 Object 类型的参数,并且目标数组的类型要和源数组的类型兼容。* destPos:目标数组中开始粘贴元素的起始位置,索引同样从 0 开始。* length:要复制的元素个数。*/System.arraycopy(nums2,0,ints,nums1.length,nums2.length);//通过Arrays.copyOf和System.arraycopy完成两个数组的合并//排序Arrays.sort(ints);//判断奇偶int middleIndex = ints.length/2;if (ints.length%2 == 0){//偶数return (ints[middleIndex]+ints[middleIndex-1])/2.0;}else {//奇数return ints[middleIndex]/2.0;}}
}

都写在注释里面了,二分法和二分边界分割法我后续再更新。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词