题解 | #在两个长度相等的排序数组中找到上中位数,时间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 ; } }
一个菜鸟的算法刷题记录 文章被收录于专栏
分享一个菜鸟的成长记录