酒煮青梅392 2024-01-13 20:02 采纳率: 65.2%
浏览 3
已结题

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

img


class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int i = 0, j = 0, k = 0;
        int n = nums1.length;
        int m = nums2.length;
        int t = m + n;
        int temp[] = new int[t];
        while (i < n && j < m) {
            if (nums1[i] >= nums2[j]) {
                temp[k++] = nums1[i++];
            } else {
                temp[k++] = nums2[j++];
            }
        }

        while (i < n) {
            temp[k++] = nums1[i++];
        }

        while (j < m) {
            temp[k++] = nums2[j++];
        }

        int len = m + n;
        double mid;

        int middle;
        if (len % 2 == 0) {
            middle = len / 2;
            mid = (temp[middle - 1] + temp[middle]) / 2.0;
        } else {
            middle = len / 2;
            mid = temp[middle - 1];
        }
        return mid;
    }
}

img

img

力扣上的一道小题,不知道为啥会这样,我认为逻辑没错误

  • 写回答

2条回答 默认 最新

  • micthis 2024-01-13 20:54
    关注
    class Solution {
        public double findMedianSortedArrays(int[] nums1, int[] nums2) {
            int i = 0, j = 0, k = 0;
            int n = nums1.length;
            int m = nums2.length;
            int t = m + n;
            int temp[] = new int[t];
            while (i < n && j < m) {
                 if (nums1[i] <= nums2[j]) {
                 //if (nums1[i] >= nums2[j]) {
                    temp[k++] = nums1[i++];
                } else {
                    temp[k++] = nums2[j++];
                }
            }
            while (i < n) {
                temp[k++] = nums1[i++];
            }
            while (j < m) {
                temp[k++] = nums2[j++];
            }
            int len = m + n;
            double mid;
            int middle;
            if (len % 2 == 0) {
                middle = len / 2;
                mid = (temp[middle - 1] + temp[middle]) / 2.0;
            } else {
                middle = len / 2;
                mid = temp[middle];
                //mid = temp[middle - 1];
            }
            return mid;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月16日
  • 已采纳回答 1月14日
  • 创建了问题 1月13日

悬赏问题

  • ¥20 求下下面这个数据结构代码
  • ¥15 路由器考试怎么办,有懂行的吗 ,eNSP
  • ¥20 前端 二进制文件流图片转化异常
  • ¥15 github上的这个C语言项目如何跑起来
  • ¥15 java 判断某个数 区间是否存在
  • ¥15 appium控制多个雷电模拟器问题
  • ¥15 C# iMobileDevice
  • ¥15 谁会做这个啊#ensp#Boson NetSim
  • ¥15 如何编写针对TPS6503320FRGE型号的电源管理芯片的编程代码?
  • ¥15 设计简单目录管理系统,要满足以下内容