Веб-версияОткрыть в Telegram

ПостЗадача: 1042. Flower Planting With No Adjacent

26 августа 2026
J
Java | LeetCode
Задача: 1042. Flower Planting With No Adjacent Сложность: medium У вас есть n садов, помеченных от 1 до n, и массив paths, где paths[i] = [xi, yi] описывает двунаправленный путь между садом xi и садом yi. В каждом саду вы хотите посадить один из 4 типов цветов. Все сады имеют не более 3 путей, входящих и выходящих из него. Ваша задача - выбрать тип цветка для каждого сада так, чтобы для любых двух садов, соединенных путем, они имели разные типы цветов. Верните любой такой выбор в виде массива answer, где answer[i] - тип цветка, посаженного в (i+1)-м саду. Типы цветов обозначаются 1, 2, 3 или 4. Ответ гарантированно существует. Пример: Input: n = 3, paths = [[1,2],[2,3],[3,1]] Output: [1,2,3] 👨‍💻 Алгоритм: 1⃣Построение графа: Создайте граф из садов и путей между ними. 2⃣Присваивание цветов: Для каждого сада выберите тип цветка, который не используется соседними садами. 3⃣Мы будем проходить по каждому саду и выбирать тип цветка, который не совпадает с типами цветов в соседних садах. Поскольку у каждого сада не более трех соседей, всегда будет возможность выбрать тип цветка из 4 возможных типов. 😎 Решение: import java.util.ArrayList; import java.util.List; public class Solution { public int[] gardenNoAdj(int n, int[][] paths) { List<Integer>[] graph = new ArrayList[n]; for (int i = 0; i < n; i++) { graph[i] = new ArrayList<>(); } for (int[] path : paths) { graph[path[0] - 1].add(path[1] - 1); graph[path[1] - 1].add(path[0] - 1); } int[] answer = new int[n]; for (int garden = 0; garden < n; garden++) { boolean[] used = new boolean[5]; for (int neighbor : graph[garden]) { used[answer[neighbor]] = true; } for (int flower = 1; flower <= 4; flower++) { if (!used[flower]) { answer[garden] = flower; break; } } } return answer; } } Ставь 👍 и забирай 📚 Базу знаний
1 · 484 ·

Рядом в ленте

JJava | LeetCodeЗадача: 1329. Sort the Matrix Diagonally Сложность: medium Диагональ матрицы — это диагональная линия ячеек, начинающаяся с какой-либо ячейки в самой верхней стJJava | LeetCodeЗадача: 1277. Count Square Submatrices with All Ones Сложность: medium Если задана матрица m * n из единиц и нулей, верните, сколько квадратных подматриц имеют
это сообщение
JJava | LeetCodeЗадача: 1198. Find Smallest Common Element in All Rows Сложность: medium Дана матрица mat размером m x n, где каждая строка отсортирована в строго возрастающем JJava | LeetCodeЗадача: 1424. Diagonal Traverse II Сложность: medium Дан двумерный целочисленный массив nums, верните все элементы nums в диагональном порядке. Пример: Input: n
JJava | LeetCodeJava | LeetCode@easy_java_task · канал · Технологии
6 449подписчиков410средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем