diff options
Diffstat (limited to 'my_calendar.cpp')
-rw-r--r-- | my_calendar.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/my_calendar.cpp b/my_calendar.cpp new file mode 100644 index 0000000..7666e1e --- /dev/null +++ b/my_calendar.cpp @@ -0,0 +1,38 @@ +#include "leetcode.h" + +struct lNode { +public: + int start, end; + lNode *next; + lNode(int s, int e, lNode *n) { + start = s; + end = e; + next = n; + } +}; + +class MyCalendar { +public: + MyCalendar() { + lNode *tail = new lNode(INT_MAX, INT_MAX, nullptr); + calendar = new lNode(-1, -1, tail); + } + bool book(int start, int end) { + lNode *curr = calendar, *last = curr; + while (start >= curr->end) + last = curr, curr = curr->next; + if (curr->start < end) + return false; + last->next = new lNode(start, end, curr); + return true; + } + +private: + lNode *calendar; +}; + +int main() { + int start, end; + MyCalendar *obj = new MyCalendar(); + bool param_1 = obj->book(start, end); +} |