Найдите уникальные парыJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Найдите уникальные пары

Сообщение Anonymous »


Существует список чисел размера n. Найдите максимальное количество пар, которое соответствует приведенному ниже шаблону:

Код: Выделить всё

2 * minimum(arr[i],arr[j]) каждый элемент ввода находится в диапазоне от 1 до 10^9
[/list]

Я пытался решить эту задачу с помощью TreeMap:
[code]import java.util.*;
public class Main
{
public static void main(String[] args) {
System.out.println(solve(Arrays.asList(2, 5, 7, 6, 9, 8 , 4 , 2)));//3
System.out.println(solve(Arrays.asList(2,1,2,4,1,4,1)));//3
}

static int solve(List arr) {
arr.sort(Comparator.reverseOrder());
TreeMap map = new TreeMap();
for(int e : arr) map.put(e, map.getOrDefault(e,0)+1);
int result = 0;
for(int e : arr) {
int min = 2 * e;
if(map.get(e) == null) continue;
Integer key = map.ceilingKey(min);
if(key != null) {
map.put(e,map.get(e)-1);
if(map.get(e) 

Подробнее здесь: [url]https://stackoverflow.com/questions/79216608/find-unique-pairs[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»