From 2dac8976a248b0df6ac49be52b484d209250b490 Mon Sep 17 00:00:00 2001 From: iceweasel Date: Mon, 17 Oct 2022 23:49:18 +0530 Subject: [PATCH] add 2 numbers and unique paths count --- Medium/02.Add2Numbers/Add2Numbers.cpp | 41 ++++++++++++++++++++++++++ Medium/62.UniquePaths/Unique_paths.cpp | 23 +++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 Medium/02.Add2Numbers/Add2Numbers.cpp create mode 100644 Medium/62.UniquePaths/Unique_paths.cpp diff --git a/Medium/02.Add2Numbers/Add2Numbers.cpp b/Medium/02.Add2Numbers/Add2Numbers.cpp new file mode 100644 index 0000000..8a66311 --- /dev/null +++ b/Medium/02.Add2Numbers/Add2Numbers.cpp @@ -0,0 +1,41 @@ +class Solution { +public: + ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { + ListNode *headnode = new ListNode(); + ListNode *result = headnode ; + + int carry = 0 , sum = 0 ; + + while(l1 || l2){ + + sum = 0 ; + + if(l1){ + sum += l1->val; + l1 = l1->next ; + } + + if(l2){ + sum += l2->val; + l2 = l2->next ; + } + + sum += carry ; + + carry = sum > 9 ? 1: 0; + sum %= 10 ; + + ListNode *dNode = new ListNode(sum); + headnode->next = dNode ; + headnode = dNode ; + + } + + if(carry){ + ListNode *dNode = new ListNode(carry); + headnode->next = dNode; + return result->next ; + } + return result->next ; + } +}; diff --git a/Medium/62.UniquePaths/Unique_paths.cpp b/Medium/62.UniquePaths/Unique_paths.cpp new file mode 100644 index 0000000..de0459a --- /dev/null +++ b/Medium/62.UniquePaths/Unique_paths.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + int solve(int m , int n , vector> &dp ){ + if(m ==1 && n ==1) + return 1 ; + + if(!m || !n) + return 0; + + if(dp[m][n] != -1) + return dp[m][n] ; + + dp[m][n] = solve(m-1,n, dp) + solve(m ,n-1,dp) ; + + return dp[m][n] ; + + } + + int uniquePaths(int m, int n) { + vector> dp(m+1 ,vector(n+1 ,-1)); + return solve(m,n,dp) ; + } +};