Skip to content

Commit 7bb885b

Browse files
committed
3 approches
1 parent bac7a69 commit 7bb885b

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

geek_for_geeks/challenge/Secondlargest.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Using One Iteration(Best method)
12
def getSecondLargest(arr):
23
n = len(arr)
34
first = second = float("-inf")
@@ -14,3 +15,50 @@ def getSecondLargest(arr):
1415
return -1
1516
return second
1617

18+
19+
# T.C = O(n)
20+
# S.C = O(1)
21+
22+
23+
# Using Two iteration
24+
def getSecondLargest(arr):
25+
n = len(arr)
26+
first = second = float("-inf")
27+
if n < 2:
28+
return -1
29+
for i in range(len(arr)):
30+
if arr[i] > first:
31+
first = arr[i]
32+
for i in range(len(arr)):
33+
if arr[i] != first and second < first and arr[i] > second:
34+
second = arr[i]
35+
36+
if second == float("-inf"):
37+
return -1
38+
return second
39+
40+
41+
# T.C = O(2n)
42+
# S.C = O(1)
43+
44+
45+
# Using sorted()
46+
def getSecondLargest(arr):
47+
n = len(arr)
48+
data = sorted(arr)
49+
first = second = float("-inf")
50+
if n < 2:
51+
return -1
52+
else:
53+
first = max(arr)
54+
for i in range(len(data) - 1, 0, -1):
55+
if data[i] != first:
56+
second = data[i]
57+
break
58+
if second == float("-inf"):
59+
return -1
60+
return second
61+
62+
63+
# T.C = O(n log n)
64+
# S.C = O(1)

0 commit comments

Comments
 (0)