aboutsummaryrefslogtreecommitdiff
path: root/my_calendar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'my_calendar.cpp')
-rw-r--r--my_calendar.cpp38
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);
+}