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

Sdílet
Vložit
  • čas přidán 25. 09. 2022
  • In this video, we showed you how to find the second highest number in Java.
    #javainterviewquestions
    #javacodinginterviewquestions
    #javaprogramming

Komentáře • 42

  • @pradeepkundekar4376
    @pradeepkundekar4376 Před rokem +4

    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.

  • @unknownplayer0383
    @unknownplayer0383 Před rokem

    program will continue to work as expected. thank you for the video

  • @sathiskumarp
    @sathiskumarp Před rokem

    It will work as expected, since we are checking the highest number logic!!!

  • @sandeshkulkarni6941
    @sandeshkulkarni6941 Před rokem +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

  • @omkar_gopchade143
    @omkar_gopchade143 Před rokem +1

    I think it will definitely work

  • @siddumaradi7045
    @siddumaradi7045 Před rokem

    yes it'll work sir

  • @bheemshankar_pk
    @bheemshankar_pk Před 2 měsíci

    Good Logic Thanks,what if there are null values in array ,then how to find 2nd largest??

  • @coolraviraj24
    @coolraviraj24 Před rokem

    yes it will

  • @gautamnegi6868
    @gautamnegi6868 Před rokem

    Yes

  • @bhargavmehta97
    @bhargavmehta97 Před rokem +1

    What about array of negative numbers?

  • @newanurag
    @newanurag Před rokem +1

    Just using the builtin functions.
    where is the brain applied?

  • @jeckrazi7691
    @jeckrazi7691 Před rokem +1

    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);

  • @dreamplaying-wg1jn
    @dreamplaying-wg1jn Před rokem +2

    Yes bro it will work

    • @stayvloging
      @stayvloging Před rokem

      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);
      }
      }

  • @stayvloging
    @stayvloging Před rokem +15

    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 Před rokem

      I am thinking about same but it will work if there are duplicate elements in array like that in pprogram

    • @stayvloging
      @stayvloging Před rokem

      @@trendinguniverse6113 yes it will work

    • @sravan77751
      @sravan77751 Před rokem +1

      if the first element is largest it will not work { 35, 4, 1, 34, 35, 35 };

    • @harikishangrandhe3381
      @harikishangrandhe3381 Před 6 měsíci

      @@sravan77751I guess it will work

  • @princemohammed921
    @princemohammed921 Před rokem +1

    For bigger test cases it is not working

  • @rmcf3972
    @rmcf3972 Před 2 měsíci

    Will this work in an array of 100,000 integers?

  • @manukarthikeya4560
    @manukarthikeya4560 Před měsícem

    Is this code from gfg ??

  • @trendinguniverse6113
    @trendinguniverse6113 Před rokem +1

    Bro pls make remove duplicate elements from array

    • @girijasankardas1189
      @girijasankardas1189 Před rokem +1

      you can easily remove duplicate element by using HashSet brother.

  • @akhilraj5268
    @akhilraj5268 Před rokem +6

    I don't think last code is suitable for all testcases

  • @chaitanaywaskar6008
    @chaitanaywaskar6008 Před rokem

    at some cases of gfg , this code don't work .

  • @nitheeshreddy6863
    @nitheeshreddy6863 Před rokem +1

    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;
    }
    }

  • @user-we5wg4ki6c
    @user-we5wg4ki6c Před 3 měsíci

    If I add second largest element two time
    Then this logic will give error

  • @ChennaiCineCuts
    @ChennaiCineCuts Před rokem

    Better to make it as Hashset to remove duplicates

  • @yogeshganpule2695
    @yogeshganpule2695 Před rokem

    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};

  • @shaikhkhizar3167
    @shaikhkhizar3167 Před rokem

    This logic won't work, if we take the array elements as a input from user.

    • @hariprasadmutalikdesai6504
      @hariprasadmutalikdesai6504 Před rokem

      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 Před rokem +1

    Very bad logic...