题解 | #在两个长度相等的排序数组中找到上中位数,时间O(n),空间O(1)#

在两个长度相等的排序数组中找到上中位数

http://www.nowcoder.com/practice/6fbe70f3a51d44fa9395cfc49694404f

import java.util.*;


public class Solution {
    /**
     * find median in two sorted array
     * @param arr1 int整型一维数组 the array1
     * @param arr2 int整型一维数组 the array2
     * @return int整型
     */
    //1 2 3 3 4 4 5 6
    public int findMedianinTwoSortedAray (int[] arr1, int[] arr2) {
        int l1 = arr1.length ;
        int l2 = arr2.length ;
        int n = l1 + l2 ;
        int k = n / 2 ;//上中位是第k小的数
        int i = 0 ;//arr1的指针
        int j = 0 ;//arr2的指针
        int res = -1 ;//当前所取的数字
        while(i < l1 && j < l2 && k >= 1) {
            if(arr1[i] == arr2[j]) {//i , j所指的数相等,默认取i所指的数
                res = arr1[i] ;
                i ++ ;
                k -- ;
            } else if(arr1[i] < arr2[j]) {//取较小的数 arr1[i]
                res = arr1[i] ;
                i ++ ;
                k -- ;
            } else {//取较小的数 arr2[j]
                res = arr2[j] ;
                j ++ ;
                k -- ;
            }
        }
        return res ;
    }
}

一个菜鸟的算法刷题记录 文章被收录于专栏

分享一个菜鸟的成长记录

全部评论

相关推荐

后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
点赞 评论 收藏
分享
05-12 16:04
已编辑
江西财经大学 Java
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务