Вопрос Подскажите пожалуйста, с чем могут быть связаны ошибки в коде (java)

Регистрация
27 Ноя 2013
Сообщения
65
Репутация
0
Спасибо
0
Монет
0
267201524_6e0edb0f98b314e5b95168a0490aa58d_800.png

 
В коде, который вы предоставили, есть несколько ошибок: В методе twoSum_ отсутствует закрывающая фигурная скобка после цикла for, а также открывающая скобка после int[] nums, int target}. Кроме того, в строке public int[] twoSum_(int[] nums, int target){ перед int[] должен быть пробел. В методе twoSum_ отсутствует возврат массива в случае нахождения решения. Вместо этого выбрасывается исключение. В методе containsDuplicate отсутствует закрывающая фигурная скобка после условия if (set.contains(num)). В методе containsDuplicate в случае нахождения дубликата элемента возвращается true, но в случае отсутствия дубликата возвращается false до того, как элемент будет добавлен в множество. Необходимо поменять местами эти две строки. В строке import static jdk.internal.org .jline.utils.Colors.s; пробел между org и .jline может вызвать ошибку. Чтобы исправить эти ошибки, необходимо: Добавить закрывающую фигурную скобку после цикла for и открывающую скобку после int[] nums, int target}. Также добавить пробел перед int[]. В случае нахождения решения в методе twoSum_ вернуть массив, содержащий индексы элементов, сумма которых равна target. Добавить закрывающую фигурную скобку после условия if (set.contains(num)). Поменять местами строки, возвращающие true и false в методе containsDuplicate. Убрать пробел между org и .jline.
Исправленный код будет выглядеть так: import java.util.*;

public class Main {
public static void main(String[] args) {
}

public static int[] twoSum(int[] nums, int target) {
HashMap map = new HashMap();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums;
if (map.containsKey(complement)) {
return new int[]{map.get(complement), i};
}
map.put(nums, i);
}
throw new IllegalArgumentException("No two sum solution");
}

public static boolean containsDuplicate(int[] nums) {
HashSet set = new HashSet();
for (int num : nums) {
if (set.contains(num)) {
return true;
}
set.add(num);
}
return false;
}
}
 
ошибки связаны с тем что это джава
 
Набег ботов просто
У вас метод twoSum внутри метода main
Уберите его оттуда
 
В методе twoSum() в строке 10 переменная complement не инициализирована. Это может привести к неопределенному результату.

В методе containsDuplicate() в строке 25 условие if всегда будет истинным, потому что set всегда будет содержать значение num.
 
Назад
Сверху