diff options
author | Haidong Ji | 2018-09-14 17:21:53 -0500 |
---|---|---|
committer | Haidong Ji | 2018-09-14 17:21:53 -0500 |
commit | 7c2298e06df83de46bef0e1b7255cf9e32ca2624 (patch) | |
tree | cc08e02f78ad0bdc35cf07f09a71a4d061cf9cac /AlgoDesignAndTechniqueEdxPython/sources | |
parent | 123adf9d800d9f33e043240292946b8baf908a2d (diff) |
Rebuilding Lenovo.
Checking in the code.
Diffstat (limited to 'AlgoDesignAndTechniqueEdxPython/sources')
-rw-r--r-- | AlgoDesignAndTechniqueEdxPython/sources/covering_segment.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/AlgoDesignAndTechniqueEdxPython/sources/covering_segment.py b/AlgoDesignAndTechniqueEdxPython/sources/covering_segment.py new file mode 100644 index 0000000..1093565 --- /dev/null +++ b/AlgoDesignAndTechniqueEdxPython/sources/covering_segment.py @@ -0,0 +1,33 @@ +# Uses python3 +import sys +from collections import namedtuple + +Segment = namedtuple('Segment', 'start end') + + +def getSortedListOfSegs(segList): + segList.sort() + return segList + + +def getOptimalPoints(segList): + if len(segList) == 1: + return [segList[0].start] + if segList[0].end <= segList[1].start: + result = [segList[0].end] + if segList[1].start == segList[1].end: + if len(segList) == 2: + return result + else: + result.extend(getOptimalPoints(segList[2:])) + return result + else: + if segList[0].end >= segList[1].end: + result = [segList[1].end] + del(segList[1]) + result.extend(getOptimalPoints(segList[1:])) + return result + else: + result = [segList[0].end] + result.extend(getOptimalPoints(segList[1:])) + return result
\ No newline at end of file |