diff --git a/Solutions/Solution1.cpp b/Solutions/Solution1.cpp new file mode 100644 index 0000000..e32a06f --- /dev/null +++ b/Solutions/Solution1.cpp @@ -0,0 +1,19 @@ +class Solution { +public: + bool divisorGame(int N) { + int count = 0; + bool valid = true; + while(valid) { + valid = false; + for(int x = 1; x < N; x++) { + if(N % x == 0) { + N = N - x; + count++; + valid = true; + break; + } + } + } + return (count % 2 == 1); + } +}; diff --git a/Solutions/Solution2.py b/Solutions/Solution2.py new file mode 100644 index 0000000..f4e85f0 --- /dev/null +++ b/Solutions/Solution2.py @@ -0,0 +1,11 @@ +class Solution: + def countVowelStrings(self, n: int) -> int: + if n == 0: + return 0 + counts = [1] * 5 + while n > 1: + n -= 1 + for i in range(1, len(counts)): + counts[i] += counts[i - 1] + + return sum(counts) diff --git a/Solutions/Solution3.cpp b/Solutions/Solution3.cpp new file mode 100644 index 0000000..3b8945c --- /dev/null +++ b/Solutions/Solution3.cpp @@ -0,0 +1,15 @@ +class Solution { +public: + int maxSumAfterPartitioning(vector& arr, int k) { + int n = arr.size(); + vector dp(n + 1); + for (int i = 1; i <= n; ++i) { + int curMax = 0; + for (int j = 1; j <= k && i - j >= 0; ++j) { + curMax = max(curMax, arr[i - j]); + dp[i] = max(dp[i], dp[i - j] + curMax * j); + } + } + return dp[n]; + } +};