File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Using One Iteration(Best method)
1
2
def getSecondLargest (arr ):
2
3
n = len (arr )
3
4
first = second = float ("-inf" )
@@ -14,3 +15,50 @@ def getSecondLargest(arr):
14
15
return - 1
15
16
return second
16
17
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)
You can’t perform that action at this time.
0 commit comments