You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
863 B
Ruby

#Given an array reverse it without using extra-space
#Time-complexity: O(n), Auxiliary-space: O(1)
# Iterative
def reverse_array(a)
right=a.length-1
left=0
while(left<right)
#swap the elements
temp=a[left] #Swapping can be like done like this a[left],a[right]=a[right],a[left]
a[left]=a[right]
a[right]=temp
left+=1
right-=1
end
print a
end
reverse_array([1,2,3,4,5]) # => [5,4,3,2,1]
# Recursive
#driver program
def driver_program(a)
right=a.length-1
left=0
reverse_array(a,left,right)
print a
end
def reverse_array(a,left,right)
return if left>=right
#swap the elements
temp=a[left]
a[left]=a[right]
a[right]=temp
reverse_array(a,left+1,right-1)
end
driver_program([1,2,3,4,5]) # => [5,4,3,2,1]