From 9ffab2afa8224874bdf0e106c93ce2433d7d3fe8 Mon Sep 17 00:00:00 2001 From: Simeet Nayan Date: Sat, 16 Oct 2021 19:30:42 +0530 Subject: [PATCH 1/2] Add Optimized Prime Factorization --- C++/OptimizedPrimeFactors.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 C++/OptimizedPrimeFactors.cpp diff --git a/C++/OptimizedPrimeFactors.cpp b/C++/OptimizedPrimeFactors.cpp new file mode 100644 index 0000000..cfaa5f8 --- /dev/null +++ b/C++/OptimizedPrimeFactors.cpp @@ -0,0 +1,24 @@ +#include +#include +#include +#include +using namespace std; + +int main() +{ + int n; + cout<<"Enter a number"<>n; + int l=0; + for(int i=2;i*i<=n; i++){ + if(n%i==0){ + while(n%i==0){ + cout< Date: Sat, 16 Oct 2021 19:32:48 +0530 Subject: [PATCH 2/2] Add Max Prod of two Subsequence --- C++/Max Dot Product of Two Subsequences.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 C++/Max Dot Product of Two Subsequences.cpp diff --git a/C++/Max Dot Product of Two Subsequences.cpp b/C++/Max Dot Product of Two Subsequences.cpp new file mode 100644 index 0000000..0cca83e --- /dev/null +++ b/C++/Max Dot Product of Two Subsequences.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + int maxProd(vector& arr1, vector& arr2, int i1, int i2, vector>& dp) { + if (i1 == arr1.size() || i2 == arr2.size()) { + return -1e7; + } + if (dp[i1][i2] != -1) { + return dp[i1][i2]; + } + int cv = arr1[i1] * arr2[i2] ; + int a = cv + maxProd(arr1, arr2, i1 + 1, i2 + 1, dp); + int b = maxProd(arr1, arr2, i1, i2 + 1, dp); + int c = maxProd(arr1, arr2, i1 + 1, i2, dp); + return dp[i1][i2] = max(max(a, b), max(cv, c)); + } + int maxDotProduct(vector& nums1, vector& nums2) { + vector> dp(nums1.size(), vector(nums2.size(), -1)); + return maxProd(nums1, nums2, 0, 0, dp); + } +}; \ No newline at end of file