Skip to content

Commit f19d87b

Browse files
committed
3.Reverse An Array with test case
1 parent 967f77d commit f19d87b

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

geek_for_geeks/challenge/Secondlargest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# 1.Second Largest
12
# Using One Iteration(Best method)
23
def getSecondLargest(arr):
34
n = len(arr)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# 3.Reverse An Array
2+
# Two Pointer Approach (best approach)
3+
def reverseArray(arr):
4+
n = len(arr)
5+
for i in range(n // 2):
6+
arr[i], arr[n - 1 - i] = arr[n - 1 - i], arr[i]
7+
return arr
8+
9+
10+
# T.C = O(n)
11+
# S.C = O(1)
12+
13+
14+
# Naive method
15+
def reverseArray(arr):
16+
temp = []
17+
n = len(arr)
18+
for i in range(n):
19+
temp.append(arr[n - 1 - i])
20+
# for i in range(len(arr) - 1, -1, -1):
21+
# temp.append(arr[i])
22+
return temp
23+
24+
25+
# T.C = O(n)
26+
# S.C = O(n)

test/test_case.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
sys.path.append(os.path.abspath(".."))
55
from geek_for_geeks.challenge.move_zero import pushZerosToEnd
6+
from geek_for_geeks.challenge.reverse_an_array import reverseArray
67
from geek_for_geeks.challenge.secondlargest import getSecondLargest
78

89

@@ -65,3 +66,33 @@ def test_mixed_types(self):
6566
expected = [1, 2, 3, 0, 0, 0, 0]
6667
pushZerosToEnd(arr)
6768
assert arr == expected
69+
70+
71+
class TestReverseArray:
72+
def test_even_length(self):
73+
arr = [1, 2, 3, 4]
74+
expected = [4, 3, 2, 1]
75+
assert reverseArray(arr) == expected
76+
77+
def test_odd_length(self):
78+
arr = [1, 2, 3, 4, 5]
79+
expected = [5, 4, 3, 2, 1]
80+
assert reverseArray(arr) == expected
81+
82+
def test_single_element(self):
83+
arr = [7]
84+
expected = [7]
85+
assert reverseArray(arr) == expected
86+
87+
def test_empty_list(self):
88+
arr = []
89+
expected = []
90+
assert reverseArray(arr) == expected
91+
92+
def test_palindrome_list(self):
93+
arr = [1, 2, 3, 2, 1]
94+
expected = [1, 2, 3, 2, 1]
95+
assert reverseArray(arr) == expected
96+
97+
98+
U

0 commit comments

Comments
 (0)