&
операция получает значение определённого бита в x
private static final int[] DX = {0, 0, 1, -1, 1, 1, -1, -1};
private static final int[] DY = {1, -1, 0, 0, 1, -1, 1, -1};
Задача поиска всех подмножеств множества, которая хорошо решается с помощью двоичных битов.
public static List<List<Integer>> binaryBit(int[] nums) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
/*
Количество подмножеств четырёх чисел
== количество двоичных чисел от 0 до 1111
== число, представленное 10000
*/
for (int i = 0; i < (1 << nums.length); i++) {
List<Integer> sub = new ArrayList<Integer>();
// Перебираем каждое число, где двоичный бит равен 1 означает, что число выбрано, и записываем его
for (int j = 0; j < nums.length; j++)
if (((i >> j) & 1) == 1) sub.add(nums[j]);
res.add(sub);
}
return res;
}
Подходящий метод трёх указателей, фиксируя одну позицию и выполняя обрезку ветвей при обходе остальных.
Сортировка массива int
Arrays.sort(nums)
Преобразование String в массив символов
new ArrayList<>(Arrays.asList("abc".split("")))
Преобразование массива int в список
List list = Arrays.stream(nums).boxed().collect(Collectors.toList());
Накопление значений в hashmap
Если ключ не существует, установить значение 1; если ключ существует, добавить значение к существующему значению.
map.merge("key", 1, (oldValue, newValue) -> oldValue + newValue);
Если ключ hashMap является списком, а значения совпадают, то это один и тот же список.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )