Sobes.tech
Senior
41

/** * Дарҷ кардани ду рақам дар массив, ки ҷамъи онҳо баробар ба рақами дода шудааст * <p> * Функсияи нависед, ки массиви рақамҳои мусбатро ҳамчун аввалин аргумент қабул мекунад * ва рақами мусбатро ҳамчун дуввум аргумент. * Функсия бояд баргардонад true, агар дар массив * ду рақам вуҷуд дошта бошанд, ки ҷамъашон ба дуввум аргумент баробар аст. * <p> * Воридот: ([10, 15, 3, 7], 17) * Баромад: true */

Ширкатҳо дар куҷо пурсиданд
VKVK

Ҷавоб аз AI

sobes.tech AI

java public class TwoSum { public static boolean hasTwoSum(int[] nums, int target) { Set<Integer> complements = new HashSet<>(); for (int num : nums) { if (complements.contains(num)) { return true; } complements.add(target - num); } return false; }

public static void main(String[] args) {
    int[] arr = {10, 15, 3, 7};
    int target = 17;
    System.out.println(hasTwoSum(arr, target)); // true
}

}


Функция `hasTwoSum` использует множество для хранения "дополняющих" чисел, которые нужны, чтобы в сумме получить `target`. При проходе по массиву, если текущее число есть в множестве, значит найдено два числа, сумма которых равна `target`. Это решение работает за O(n) по времени и O(n) по памяти.