diff options
Diffstat (limited to 'split_array_consec_subseq.cpp')
-rw-r--r-- | split_array_consec_subseq.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/split_array_consec_subseq.cpp b/split_array_consec_subseq.cpp new file mode 100644 index 0000000..622e296 --- /dev/null +++ b/split_array_consec_subseq.cpp @@ -0,0 +1,33 @@ +#include "leetcode.h" + +class Solution { +public: + bool isPossible(vector<int> &nums) { + unordered_map<int, int> um; + for (auto &it : nums) + um[it]++; + for (auto &it : nums) { + if (um[it] == 0) + continue; + int freq = um[it], curr = it, count = 0; + while (um.count(curr) && um[curr] >= freq) { + freq = fmax(freq, um[curr]); + um[curr]--; + count++; + curr++; + } + if (count < 3) + return false; + } + return true; + } +}; + +int main() { + Solution obj; + vector<int> nums = {1, 2, 3, 4, 5}; + if (obj.isPossible(nums)) + cout << "true"; + else + cout << "false"; +} |