算法題(5)

題目: 已知一條線段從0 到 10000,給定一個L線段(x,y), 找出所有包含線段L線段
如下圖所示,假定 (x, y) 爲 (2,4) , 所有能否覆蓋L線段的組合爲
(0, 4) (0, 5) (0, 6)
(1, 4) (1, 5) (1, 6)
(2, 4) (2, 5) (2, 6)
這裏寫圖片描述

解題思路:
觀察線段可以看出所有能否覆蓋L線段的組合(t1, t2),
左側的座標點t1必須滿足 0 <= t1 <= x
右側的座標點t2 必須滿足 y<= t2 <= 10000

def find_segment(x, y):
    res_list = []
    for t1 in range(0, x + 1):
        for t2 in range(y, 10000 + 1):
            res_list.append((t1, t2))

    return res_list

print find_segment(2, 4)

如果要求所有重疊的線段,該怎麼做?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章