firstTerm = temp # return secondTerm def Fibonacci_recursive(number): cache = {} def fib(number): # base case fpr 1 & 0 if number in [0, 1]: return number # recursive case if not number in cache: cache[number] = fib(number - 1) + fib(number - 2) return cache[number] return fib(number) intList = TestHelper.GenerateRandomIntListWithoutDuplicates(5, 1, 60) for i in intList: t1 = datetime.now() r = Fibonacci_iterative(i) t2 = datetime.now() print(i, "Fibonacci_iterative", r, t2 - t1) t1 = datetime.now() r = Fibonacci_recursive(i) t2 = datetime.now() print(i, "Fibonacci_recursive", r, t2 - t1)
def IntersectionCountHash(arr1, arr2): count = 0 d1 = {} for i in arr1: d1[i] = 1 for j in arr2: if j in d1: count += 1 return count a1 = TestHelper.GenerateRandomIntListWithoutDuplicates(50000, 0, 1000000) a2 = TestHelper.GenerateRandomIntListWithoutDuplicates(40000, 0, 1000000) print("solution 1") t1 = datetime.now() count = IntersectionCount(a1, a2) t2 = datetime.now() print("IntersectionCount", count, "Time diff", t2 - t1) print("solution 2") t1 = datetime.now() count = IntersectionCountSorted(a1, a2)