Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions algorithms/math/two-sums
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
"""
Complexity = O(N*M)
Given an Array of Integers
return the index of the two numbers which their sum is equals
to the target

"""
def twoSum(nums, target):
i = 0
flag = False
for i in range(len(nums)):
if(flag):
break
for j in range(len(nums)):
if( i !=j ):
if(nums[i] + nums[j] == target):
print(str(i) + " " + str(j))
flag = True


31 changes: 31 additions & 0 deletions data_structures/array/prefix_sum.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#prefix sum algorithm

#Return array of sums from the queries list.
#For example, if the numbers is [1,2,3,4,5] and queries is [[0,1],[2,3],[4,5]].
#the first element in the queries list(queries[0]) should return summation of elements from index 0 to 1 in array numbers.
#time complexity O(n)

def prefix_sum(numbers, queries):
prefix = []
output = []
prefix.append(numbers[0])
numbers_index = 1
while(numbers_index < len(numbers)):
prefix.append(prefix[numbers_index-1] + numbers[numbers_index])
numbers_index+=1

queries_index = 0
while(queries_index < len(queries)):
if(queries[queries_index][0] == 0):
output.append(prefix[queries[queries_index][1]])
else:
output.append(prefix[queries[queries_index][1]] - prefix[queries[queries_index][0]-1])

queries_index+=1
return output

#test cases
print(prefix_sum([3, 0, -2, 6, -3, 2],[[0,2], [2,5], [0,5]]))
print(prefix_sum([-1000], [[0,0]]))
print(prefix_sum([34, 19, 21, 5, 1, 10, 26, 46, 33, 10], [[3,7], [3,4], [3,7], [4,5],[0,5]]))
print(prefix_sum([-4, -18, -22, -14, -33, -47, -29, -35, -50, -19],[[2,9], [5,6],[1,2],[2,2],[4,5]]))