[LeetCode] 252. Meeting Rooms

这道题可以直接暴力解决,看看每个interval是不是和剩余的interval有重复。但是还有一种更优化的方法,先对起始时间排序,然后看每一个end的时间是不是比前一个的start时间早。

python笔记,

1. sorted function会create一个新的list,但是<my_list>.sort会直接改变原来的array

2. 怎么写一个sort的compare function,这里面用key = lamda x :x.start,这里说按照x.start升序排序。

"""
Definition of Interval.
class Interval(object):
    def __init__(self, start, end):
        self.start = start
        self.end = end
"""

class Solution:
    """
    @param intervals: an array of meeting time intervals
    @return: if a person could attend all meetings
    """
    def canAttendMeetings(self, intervals):
        # Write your code here
        intervals.sort(key = lambda x: x.start)
        result = True
        for i in range(len(intervals) - 1):
            if intervals[i].end > intervals[i + 1].start:
                result = False
                break
        return result

LintCode 920

posted on 2019-03-14 11:21  codingEskimo  阅读(107)  评论(0编辑  收藏  举报

导航