diff options
Diffstat (limited to 'other/min_rounds_complete_all_tasks.cpp')
-rw-r--r-- | other/min_rounds_complete_all_tasks.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/other/min_rounds_complete_all_tasks.cpp b/other/min_rounds_complete_all_tasks.cpp new file mode 100644 index 0000000..0d78073 --- /dev/null +++ b/other/min_rounds_complete_all_tasks.cpp @@ -0,0 +1,27 @@ +#include "leetcode.h" + +class Solution { +public: + int minimumRounds(vector<int> &tasks) { + unordered_map<int, int> um; + for (auto i : tasks) + um[i]++; + int count = 0; + for (auto i : um) { + int t = i.second; + if (t == 1) + return -1; + count += t / 3; + if (t % 3 != 0) + count++; + } + return count; + } +}; + +int main() { + Solution obj; + vector<int> tasks1 = {2, 2, 3, 3, 2, 4, 4, 4, 4, 4}, tasks2 = {2, 3, 3}; + cout << obj.minimumRounds(tasks1) << endl; + cout << obj.minimumRounds(tasks2) << endl; +} |