From 8c21db144633e673f64510c18ae96175c0910e1c Mon Sep 17 00:00:00 2001 From: Eat-Swap Date: Mon, 6 Jun 2022 23:57:48 +0800 Subject: [PATCH] add: 220606_CN --- cpp/2206/220606-CN.cpp | 28 ++++++++++++++++++++++++++++ cpp/2206/CMakeLists.txt | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 cpp/2206/220606-CN.cpp diff --git a/cpp/2206/220606-CN.cpp b/cpp/2206/220606-CN.cpp new file mode 100644 index 0000000..ddcb895 --- /dev/null +++ b/cpp/2206/220606-CN.cpp @@ -0,0 +1,28 @@ +#include + +/** + * 732. My Calendar III + * A k-booking happens when k events have some non-empty intersection (i.e., there is some time that is common to all k events.) + * You are given some events [start, end), after each given event, return an integer k representing the maximum k-booking between all the previous events. + * Implement the MyCalendarThree class: + * MyCalendarThree() Initializes the object. + * int book(int start, int end) Returns an integer k representing the largest integer such that there exists a k-booking in the calendar. + */ + +class MyCalendarThree { +private: + std::map m; + +public: + MyCalendarThree() = default; + + int book(int start, int end) { + // mb: currently, 0 -> idx, the maximum books + int ans = 0, mb = 0; + ++m[start]; + --m[end]; + for (const auto& [idx, freq] : m) + ans = std::max(mb += freq, ans); + return ans; + } +}; \ No newline at end of file diff --git a/cpp/2206/CMakeLists.txt b/cpp/2206/CMakeLists.txt index 4ae8a65..2751e08 100644 --- a/cpp/2206/CMakeLists.txt +++ b/cpp/2206/CMakeLists.txt @@ -3,4 +3,4 @@ PROJECT(2206) SET(CMAKE_CXX_STANDARD 23) -ADD_EXECUTABLE(2206 220605-CN.cpp) +ADD_EXECUTABLE(2206 220606-CN.cpp)