Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static boolean mapSeparator(int index, Rect rectangle) {
- boolean isTrue = false;
- int vacationsSize = vacations.size();
- //добавление всех прямоугольников без пересечения
- if (index + 2 < vacationsSize) {
- if (!Vacation.getUniqueRect(rectangle).isEmpty()) { //если есть прямоугольники - сохраняем их, добавляем trueRect
- ArrayList<Rect> middleRects = new ArrayList<>(Vacation.getUniqueRect(rectangle));
- trueRects.add(middleRects.get(0));
- for (Rect middleRect : middleRects) {//закидываем каждый middleRect в следующий шаг
- trueRects.set(index + 1, middleRect);//если из следующей не вернулся прямоугольник - заменяем middleRect
- if (mapSeparator(index + 1, middleRect)) {
- return true;
- }
- }
- if(!isTrue){
- trueRects.remove(index + 1);
- }
- } else {
- isTrue = false;//если нет нужных прямоугольников - возвращаем false
- }
- } else if (index + 1 < vacationsSize) {
- if (!Vacation.getUniqueRect(rectangle).isEmpty()) {
- trueRects.add(Vacation.getUniqueRect(rectangle).get(0));
- isTrue = true;
- }
- } else isTrue = true;//если дошли до конца - есть решение, возвращаем true
- return isTrue;
- }
Add Comment
Please, Sign In to add comment