From ee4c4ff3015b967e693664105c889bff67e3e311 Mon Sep 17 00:00:00 2001
From: Michael Mutote <130656746+mr1Michael@users.noreply.github.com>
Date: Thu, 12 Oct 2023 11:22:10 +0200
Subject: [PATCH] 22202956 Exercise 4.9 question 3 done.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Optimised and removed a lot of un-needed code. Might still need to use Dijkstra’s Algorithm
---
 4_9_Exercises/Question 3.py | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/4_9_Exercises/Question 3.py b/4_9_Exercises/Question 3.py
index a2bd84b..e406f0d 100644
--- a/4_9_Exercises/Question 3.py	
+++ b/4_9_Exercises/Question 3.py	
@@ -1,20 +1,9 @@
-def nsp(x, y, current=(0, 0)):
-    if current is None:
+def nsp(x, y):
+    if x < 0 or y < 0:
         return 0
-    if current == (x, y):
+    if (0, 0) == (x, y):
         return 1
     else:
-        next_corner = new_index(x, y, current)
-        # uses helper function to find the next corner
-        return nsp(x, y, next_corner[0]) + nsp(x, y, next_corner[1])
-    pass
+        return nsp(x, y - 1) + nsp(x - 1, y)
 
 
-def new_index(x, y, current):
-    # Helper function to find the possible next states, reduced clutter
-    if current[0] < x and current[1] < y:
-        return (current[0], current[1] + 1), (current[0] + 1, current[1])
-    if current[0] >= x and current[1] < y:
-        return (current[0], current[1] + 1), None
-    if current[0] < x and current[1] >= y:
-        return (current[0] + 1, current[1]), None
-- 
GitLab