From ae9f1fe46f0dedf9b6085e580f2691940af406ef Mon Sep 17 00:00:00 2001 From: Kaushik Narayan R Date: Fri, 29 Sep 2023 14:01:40 -0700 Subject: [PATCH] day 4: 169-majority-element --- 169-majority-element/driver.cpp | 11 +++++++++++ 169-majority-element/soln.cpp | 17 +++++++++++++++++ 169-majority-element/soln.hpp | 9 +++++++++ 3 files changed, 37 insertions(+) create mode 100644 169-majority-element/driver.cpp create mode 100644 169-majority-element/soln.cpp create mode 100644 169-majority-element/soln.hpp diff --git a/169-majority-element/driver.cpp b/169-majority-element/driver.cpp new file mode 100644 index 0000000..7be7ddb --- /dev/null +++ b/169-majority-element/driver.cpp @@ -0,0 +1,11 @@ +#include "soln.hpp" +#include + +int main() +{ + vector nums = {2, 2, 1, 1, 1, 2, 2}; + int answer = 2; + Solution soln; + cout << "Majority element is correct? " << soln.test(nums, answer) << endl; + return 0; +} \ No newline at end of file diff --git a/169-majority-element/soln.cpp b/169-majority-element/soln.cpp new file mode 100644 index 0000000..2514316 --- /dev/null +++ b/169-majority-element/soln.cpp @@ -0,0 +1,17 @@ +#include "soln.hpp" + +int Solution::majorityElement(vector &nums) +{ + map counts; + for (auto &it : nums) + { + counts[it]++; + if (counts[it] > (nums.size() / 2)) + return it; + } + return -1; +} + +bool Solution::test(vector& nums, int answer) { + return majorityElement(nums) == answer; +} \ No newline at end of file diff --git a/169-majority-element/soln.hpp b/169-majority-element/soln.hpp new file mode 100644 index 0000000..a5d574a --- /dev/null +++ b/169-majority-element/soln.hpp @@ -0,0 +1,9 @@ +#include +using namespace std; + +class Solution +{ +public: + int majorityElement(vector &nums); + bool test(vector &nums, int answer); +}; \ No newline at end of file