JAVA-算法
不拿大场offer不改名
成为优质的码农
展开
-
Java算法(递归):两个不同长度的有序数组求第k小的元素(时间复杂度为:O(log(m1 + m2)))。
首先看到时间复杂度要求就可以确定使用折半查找的思想。由于数组下标是从0开始计数,我们可以将k也定义为从0开始,那么原本题目中的第k小(k从1开始),在我们算法中就表示成第k-1小(k从0开始)。 注意每次取mid1和mid2时,都应该考虑有没有越界情况的发生。 public class ex_2 { public static void main(String[] args) { int[] arr1 = new int[]{1, 2, 3}; int[] ar原创 2020-10-25 10:46:35 · 253 阅读 · 0 评论 -
Java算法(递归):在两个长度相等的排序数组中找中位数
public class ex_1 { public static void main(String[] args) { int[] arr1 = new int[]{1, 2, 3, 4}; int[] arr2 = new int[]{3, 4, 5, 6}; System.out.println(getUpMedian(arr1, arr2)); } public static int getUpMedian(int[] ar.原创 2020-10-20 21:02:42 · 246 阅读 · 0 评论