Попытка сделать некоторую практику, и я столкнулся с этой проблемой...
Учитывая два внутренних массива A и B и int c, возвращаем общее число пар (a, b), где a - из A и b - из B, a + b - <= c
Сразу после этого перейдем к решению грубой силы, но не можем соединить точки, чтобы сделать это с лучшей сложностью. Сначала я попытался отсортировать массивы и попытался найти какой-то шаблон, но это ничуть не привело. Я думал о случаях, когда один массив имел отрицательные числа. В этом случае я не могу просто взглянуть на значение из A или B и проверить, меньше ли оно, чем c, потому что в другом массиве может быть отрицательное значение, которое при объединении дает мне результат <= c. Будет оценено любое понимание, идеи или подсказки.
import java.util.*;
public class CountPairs {
public static void main(String args[]){
int arrayA[] = {32,45,9,4};
int arrayB[] = {43,457,54,90};
Scanner scan = new Scanner(System.in);
System.out.println("Choose the value that you want to find pairs <= ");
int c = scan.nextInt();
System.out.println("The total number of pairs are : " + pairs(arrayA, arrayB, c));
}
public static int pairs(int A[], int B[], int n) {
int count = 0;
for (int i = 0; i < A.length; i++) {
for (int j = 0; j < B.length; j++) {
int total = A[i] + B[j];
if(total <= n)
count++;
}
}
return count;
}
}