Skip to content

Commit 2dc2083

Browse files
committed
Geeks
1 parent 1b57499 commit 2dc2083

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
.pre-commit-config.yaml
2+
venv/
3+
__init__.py
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
def getSecondLargest(arr):
2+
n = len(arr)
3+
first = second = float("-inf")
4+
if n < 2:
5+
return -1
6+
else:
7+
for i in arr:
8+
if i > first:
9+
second = first
10+
first = i
11+
elif i > second and i != first:
12+
second = i
13+
if second == float("-inf"):
14+
return -1
15+
return second
16+

test/geeks.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from geek_for_geeks.challenge.Secondlargest import getSecondLargest
2+
3+
4+
class Test_getSecondLargest:
5+
def test_basic(self):
6+
assert getSecondLargest([2, 3, 6, 6, 5]) == 5
7+
8+
def test_all_same(self):
9+
assert getSecondLargest([4, 4, 4]) == -1
10+
11+
def test_one_element(self):
12+
assert getSecondLargest([10]) == -1
13+
14+
def test_negative_numbers(self):
15+
assert getSecondLargest([-5, -2, -9, -1]) == -2
16+
17+
def test_empty_array(self):
18+
assert getSecondLargest([]) == -1

0 commit comments

Comments
 (0)