Добавление неперекрывающихся диапазона в списке

Существующий список а, а из элементов являются такими, как [X, Y] формат массива, представитель части цифрового интервала, например, [1,3] представляет собой любое число в диапазоне от 1 до 3 из

Анализируя данный интервал новой цифровой new_element (например .: [10, 25]) не могут быть добавлены в список, возвращает истину или ложь

Требовать любые добавил в список нового диапазона номеров, вы должны удовлетворять следующие условия:

  • Новый добавленный цифровой интервал [х, у], у больше х должно быть
  • Список номеров каждый интервал площадь перекрытия не может существовать
  • Так, например [3, 5] и [7, 8] не перекрываются, но [3,5] и [4,6] перекрывающиеся области (примечание: что между [3, 5] и [5, 6] это не перекрываются)

Перекрытие интервалы, которые могут образовывать только четыре




a = [
    [6, 6.9],
    [3, 5.6],
    [12, 22],
    [37.5, 97.8]
]


def can_add_in(a, new_element):
    #   y 必须大于 x
    if new_element[1] <= new_element[0]:
        return False

    #   和已存在的每个区间进行比较
    for i in a:
        # print(i)
        #   1 和 4   的情况:新区间的起始在已有区间内
        if i[1] > new_element[0] and i[0] <= new_element[0]:
            return False
        #   2 和 3   的情况:已有区间的起始在新区间内
        elif i[0] >= new_element[0] and i[0] < new_element[1]:
            return False

    return True


print(can_add_in(a, [6.9, 12]))




рекомендация

отwww.cnblogs.com/jiyu-hlzy/p/11938989.html