Leetcode #1 | #Easy | [[Хэш-таблицы]] | [[Математика]] ## Идея Идея хранить в мапе разница: индекс_элемента Идем по массиву, считаем разницу, если уже есть в мапе, то легко получаем два индекса Если нет просто добавляем в мапу число и его индекс Гарант того что встретиться - математика если 4+3=7 то и 3+4=7, то есть порядок прохода не важен и два прохода не требуется, а также мы исключаем дубликат + сразу индексы по возрастанию ## [[Big-O]] - Время ```O(N)``` - Память ```O(N)``` ## Код ```Java class Solution { public int[] twoSum(int[] nums, int target) { Map map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int diff = target - nums[i]; if (map.containsKey(diff)) return new int[]{map.get(diff), i}; map.put(nums[i], i); } return new int[0]; } } ```