题目内容
给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays
算法思想
求两个正序数组的中位数,与合并两个有序单链表算法类似
while 两数组一起循环i,j
if nums1[i]<nums2[j]
num[p]=nums1[i]
i++
p++
else
num[p]=nums2[j]
j++
p++
判断哪个数组不为空i,j!=length
while i<nums1.length
num[p]=nums1[i]
p++
i++
整体算法
public class Day_05 {
static Scanner input=new Scanner(System.in);
public static double findMedianSortedArrays(int[] nums1, int[] nums2) {
int length=nums1.length+nums2.length;
int [] num=new int[length];
int p=0;
int j=0;
int i=0;
while ( i < nums1.length&&j<nums2.length ) {
if(nums1[i]<nums2[j]){
num[p]=nums1[i];
i++;
p++;
}else{
num[p]=nums2[j];
j++;
p++;
}
}
if(i!=nums1.length){
while (i<nums1.length){
num[p]=nums1[i];
p++;
i++;
}
}
if(j!=nums2.length){
while (j<nums2.length){
num[p]=nums2[j];
p++;
j++;
}
}
DecimalFormat df=new DecimalFormat("0.00000");
if ((num.length%2)!=0){
double aDouble_num=Double.valueOf(num[num.length/2]);
return aDouble_num;
}else{
double sumnum=(Double.valueOf(num[num.length/2])+Double.valueOf(num[num.length/2-1]))/2;
return sumnum;
}
}
public static void main(String[] args) {
int j=0;
String day_05_num=new String();
day_05_num=input.nextLine();
String day_05_num1=new String();
day_05_num1=input.nextLine();
//去掉[,]两符号
String day_05_search=new String();
for (int i = 1; i < day_05_num.length()-1; i++) {
day_05_search+=day_05_num.charAt(i);
}
String day_05_search1=new String();
for (int i = 1; i < day_05_num1.length()-1; i++) {
day_05_search1+=day_05_num1.charAt(i);
}
//根据逗号拆分字符串
String [] day_05_Truenum=day_05_search.split(",");
int [] day_05_int=new int[day_05_Truenum.length ];
String [] day_05_Truenum1=day_05_search1.split(",");
int [] day_05_int1=new int[day_05_Truenum1.length];
//将字符串数组转换为数字数组
for (int i = 0; i <day_05_Truenum.length ; i++,j++) {
day_05_int[j]=Integer.valueOf(day_05_Truenum[i]);
}
j=0;
for (int i = 0; i <day_05_Truenum1.length ; i++,j++) {
day_05_int1[j]=Integer.valueOf(day_05_Truenum1[i]);
}
System.out.println(findMedianSortedArrays(day_05_int,day_05_int1));
}
}
尾语
以上属于个人见解,有好的想法可以在下方评论写出自己的想法,大家一起进步。该题是力扣上的题,若有侵权,请及时告知。该题链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays