2
public int makeArrayIncreasing(int[] A, int[] B) { // A = arr1, B = arr23
TreeSet<Integer> set = new TreeSet<>(Arrays.stream(B).boxed().toList());4
int[] dp = new int[B.length + 1];7
for (int i = 0; i < A.length; i++) {8
for (int j = B.length; j >= 0; j--) {9
int a = A[i] > dp[j] ? A[i] : INF; // option A - don't swap10
Integer b = set.higher(j == 0 ? INF : dp[j - 1]); // option B - swap11
dp[j] = Math.min(a, b == null ? INF : b); // take the min of A and B14
for (int i = 0; i <= B.length; i++)