Find Second Largest Number From Array | Java Interview Questions and Answers

  Рет қаралды 45,406

CloudTech

CloudTech

Күн бұрын

Пікірлер: 44
@developer00007
@developer00007 2 жыл бұрын
Answer: Yes it will definitely work. I have few approaches to solve this problem: Approach 1: Step 1: Add all the elements in a Set. Step 2: Now add all elements from set into a new ArrayList and Sort. Step 3 : Get size -2 th element Time Complexity O(nlogn) Space Complexity O(n) Approach 2: (Using Heap or PriorityQueue) Step 1: Add All elements into a set to remove duplicates Step 2: Iterate through each elements of the set and add it into the Min Heap. Step 3: Check if the size of Heap >2 then pop the top elements. Step 4: Return Top element Time Complexity: O(nlog2) Space Complexity:O(n) If there were no Duplicates then Space Complexity can Be constant.
@bheemshankar_pk
@bheemshankar_pk 5 ай бұрын
Good Logic Thanks,what if there are null values in array ,then how to find 2nd largest??
@sandeshkulkarni6941
@sandeshkulkarni6941 2 жыл бұрын
I think first we have to remove duplicate elements from array and then we sort, After that there no problem if we give any updated array
@stayvloging
@stayvloging 2 жыл бұрын
public class SecondLargestNumberFromTheArray { public static void main(String[] args) { int arr[] = { 1, 4, 35, 34, 35, 35 }; int largest = arr[0]; int secondLargest = arr[0]; for (int i = 0; i < arr.length; i++) { if (largest < arr[i]) { secondLargest = largest; largest = arr[i]; } else if (secondLargest < arr[i] && largest > arr[i]) { secondLargest = arr[i]; } } System.out.println(secondLargest); } }
@trendinguniverse6113
@trendinguniverse6113 2 жыл бұрын
I am thinking about same but it will work if there are duplicate elements in array like that in pprogram
@stayvloging
@stayvloging 2 жыл бұрын
@@trendinguniverse6113 yes it will work
@sravan77751
@sravan77751 Жыл бұрын
if the first element is largest it will not work { 35, 4, 1, 34, 35, 35 };
@harikishangrandhe3381
@harikishangrandhe3381 10 ай бұрын
@@sravan77751I guess it will work
@prashanthreddy-sd9ju
@prashanthreddy-sd9ju 2 ай бұрын
In java 8 you would write omething like Arrays.stream(are).sorted(comparator.reverseorder()).limit(2).skip(1). findfirsf().get();
@unknownplayer0383
@unknownplayer0383 2 жыл бұрын
program will continue to work as expected. thank you for the video
@sathiskumarp
@sathiskumarp 2 жыл бұрын
It will work as expected, since we are checking the highest number logic!!!
@rmcf3972
@rmcf3972 6 ай бұрын
Will this work in an array of 100,000 integers?
@newanurag
@newanurag 2 жыл бұрын
Just using the builtin functions. where is the brain applied?
@jeckrazi7691
@jeckrazi7691 Жыл бұрын
Hi @CloudTech, Stream.of(1,4,5,35,34,35) .sorted((n1,n2)-> Integer.compare(n2,n1)) .distinct() .limit(2) .skip(1) .forEach(System.out::println);
@bhargavmehta97
@bhargavmehta97 Жыл бұрын
What about array of negative numbers?
@manukarthikeya4560
@manukarthikeya4560 5 ай бұрын
Is this code from gfg ??
@dreamplaying-wg1jn
@dreamplaying-wg1jn 2 жыл бұрын
Yes bro it will work
@stayvloging
@stayvloging 2 жыл бұрын
public class SecondLargestNumberFromTheArray { public static void main(String[] args) { int arr[] = { 1, 4, 35, 34, 35, 35 }; int largest = arr[0]; int secondLargest = arr[0]; for (int i = 0; i < arr.length; i++) { if (largest < arr[i]) { secondLargest = largest; largest = arr[i]; } else if (secondLargest < arr[i] && largest > arr[i]) { secondLargest = arr[i]; } } System.out.println(secondLargest); } }
@omkar_gopchade143
@omkar_gopchade143 2 жыл бұрын
I think it will definitely work
@akhilraj5268
@akhilraj5268 2 жыл бұрын
I don't think last code is suitable for all testcases
@cloudtech5260
@cloudtech5260 2 жыл бұрын
Any idea on what test case moght not pass.
@dipalialone1298
@dipalialone1298 2 жыл бұрын
When all elements are same then it will fail
@developer00007
@developer00007 2 жыл бұрын
@@dipalialone1298They Have Handle it. Watch again
@princemohammed921
@princemohammed921 Жыл бұрын
For bigger test cases it is not working
@nitheeshreddy6863
@nitheeshreddy6863 2 жыл бұрын
hi bro i have used this logic can u please check this.. int array[]=new int [] {1,4,5,35,35,35,34}; Arrays.sort(array); //1,2,4,34,35,35; int highest=array[array.length-1]; for(int i=array.length-2;i>=0;i--) { if(highest>array[i]) { System.out.println(array[i]); break; } }
@iceberg5956
@iceberg5956 Жыл бұрын
Awsm
@venkateshvardhineedi9571
@venkateshvardhineedi9571 Жыл бұрын
Super
@darknight66655
@darknight66655 Ай бұрын
yes it will work surr**
@siddumaradi7045
@siddumaradi7045 2 жыл бұрын
yes it'll work sir
@trendinguniverse6113
@trendinguniverse6113 2 жыл бұрын
Bro pls make remove duplicate elements from array
@girijasankardas1189
@girijasankardas1189 2 жыл бұрын
you can easily remove duplicate element by using HashSet brother.
@coolraviraj24
@coolraviraj24 2 жыл бұрын
yes it will
@chaitanaywaskar6008
@chaitanaywaskar6008 Жыл бұрын
at some cases of gfg , this code don't work .
@gautamnegi6868
@gautamnegi6868 2 жыл бұрын
Yes
@RameshKumar-g8x7f
@RameshKumar-g8x7f 7 ай бұрын
If I add second largest element two time Then this logic will give error
@ChennaiCineCuts
@ChennaiCineCuts 2 жыл бұрын
Better to make it as Hashset to remove duplicates
@cloudtech5260
@cloudtech5260 2 жыл бұрын
Yes that can be done. 👍
@shaikhkhizar3167
@shaikhkhizar3167 2 жыл бұрын
This logic won't work, if we take the array elements as a input from user.
@hariprasadmutalikdesai6504
@hariprasadmutalikdesai6504 2 жыл бұрын
But code working with user input with me. and code is import java.util.Arrays; import java.util.Scanner; public class MainClass { public static void main(String[] args) { printsecondlargest(); } public static void printsecondlargest() { int n; Scanner sc = new Scanner(System.in); System.out.println("Enter the No of Elements to store in array : "); n = sc.nextInt(); int[] array = new int[n]; System.out.println("Enter the array Elements : "); for (int i=0; i 0; i--) { if(array[i] != array[size-1]) { System.out.println("Second Largest Element is "+array[i]); return; } } System.out.println("No such Element Present"); } } Output: Enter the No of Elements to store in array : 6 Enter the array Elements : 13 35 35 23 34 13 Second Largest Element is 34
@bhushantaywadevlogs9552
@bhushantaywadevlogs9552 Жыл бұрын
Very bad logic...
@yogeshganpule2695
@yogeshganpule2695 Жыл бұрын
This will fail in case you have 2 duplicate elements as smallest . for ex int[] arr = {1, 2, 5, 7, 8, 9, -14, 56, 98, -3, -14, 2};
Java Program to Find the Second Highest Number in an Array
9:26
Programming Tutorials
Рет қаралды 81 М.
Don't look down on anyone#devil  #lilith  #funny  #shorts
00:12
Devil Lilith
Рет қаралды 48 МЛН
小丑家的感情危机!#小丑#天使#家庭
00:15
家庭搞笑日记
Рет қаралды 35 МЛН
Who’s the Real Dad Doll Squid? Can You Guess in 60 Seconds? | Roblox 3D
00:34
MUST KNOW junior role JAVA interview questions
42:15
Keep On Coding
Рет қаралды 123 М.
Don't look down on anyone#devil  #lilith  #funny  #shorts
00:12
Devil Lilith
Рет қаралды 48 МЛН