Bs-22. K-th element of two sorted arrays | Binary Search Approach

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2024

ความคิดเห็น • 107

  • @sujalgupta6100
    @sujalgupta6100 6 หลายเดือนก่อน +128

    It was all good until the gas stations problem arrived. From that problem, there is always something weird logic everytime in hard problems. I feel a rewatch is required.

    • @codewithcode2864
      @codewithcode2864 5 หลายเดือนก่อน +9

      very true brother
      the whole confidence goes off

    • @Satyendra_Prakash17
      @Satyendra_Prakash17 5 หลายเดือนก่อน +4

      glad someone said

    • @soumiyamuthuraj3516
      @soumiyamuthuraj3516 4 หลายเดือนก่อน +2

      Soo true

    • @priyanshshukla450
      @priyanshshukla450 4 หลายเดือนก่อน +7

      Facts, everything was going good till that gas station problem 😭

    • @RAHUL-gl3ye
      @RAHUL-gl3ye 4 หลายเดือนก่อน

      But the gas station problem requires premium on leetcode right? 👀

  • @Dontpushyour_luck
    @Dontpushyour_luck ปีที่แล้ว +36

    did it by my own after learning median of two sorted arrays concept from you! thank you

    • @atharvakj
      @atharvakj 5 หลายเดือนก่อน

      which one ?

  • @MR._NEEN
    @MR._NEEN 10 หลายเดือนก่อน +10

    I AM IMPROVING MYSELF IN PROBLEM SOLVING DAY BY DAY BECAUSE OF YOU.
    I AM SLAVE TO YOUR PLAYLIST

    • @bruvhellnah
      @bruvhellnah 28 วันที่ผ่านมา +1

      what the actual f lmao

  • @FusionArcs
    @FusionArcs 10 หลายเดือนก่อน +60

    finally, the mystery of why low and high needs to be corrected for this solution?
    Let's take an example, m = 3, n = 10, k = 12
    If we keep low = 0, and high = 3
    then mid1 = 1;
    low = 0 means we don't pick any element from the first array, and now the remaining elements need to be picked from the second array.
    mid2 = (k - mid1) = 12 - 1 = 11 ???? but there are only 10 elements in the second array
    Hence we can't start our search when we pick no elements from the first array.
    So our low must be max(k - n, 0) [no of elements at least need to pick for 1st array]
    Similarly, for high, we have to reduce the search space such that it can handle low K values.
    Note: this issue doesn't occur in the median problem because we guaranteed to split the search space in half every time.

    • @aryansoni8819
      @aryansoni8819 6 หลายเดือนก่อน +3

      bro when mid1=1 then you pick one element from first array correction rest are correct

    • @JIGARSINGTHAKOR-yy6qp
      @JIGARSINGTHAKOR-yy6qp 4 หลายเดือนก่อน

      can you furthur explain why it does not happens in median.?

    • @anandpandey918
      @anandpandey918 4 หลายเดือนก่อน +1

      //Bruteforce Approach
      class Solution {
      public long kthElement(int arr1[], int arr2[], int m, int n, int k) {
      int[] merged = mergeTwoSortedArrayIntoThirdSortedArray(arr1, m, arr2, n);
      return merged[k - 1];
      }
      private int[] mergeTwoSortedArrayIntoThirdSortedArray(int[] arr1, int m, int[] arr2, int n) {
      int[] merged = new int[m + n];
      int i = 0, j = 0, k = 0;
      while (i < m && j < n) {
      if (arr1[i]

    • @vamsikrishnagannamaneni912
      @vamsikrishnagannamaneni912 15 วันที่ผ่านมา

      In median it will work because we never ask to pick more than the largest array have, because of the formula (n1+n2+1)//2

  • @sayantanmanna1360
    @sayantanmanna1360 11 หลายเดือนก่อน +18

    Hey @takeUforward , there's a small mistake in the optimal solution posted on the website. It says `int low = max(0,k-m), high = min(k,n) ; ` where `m` and `n` are the length of the first and second array respectively. According to this lecture, it should be `int low = max(0,k-n), high = min(k,m) ; `

  • @parthrastogi572
    @parthrastogi572 ปีที่แล้ว

    Just search for this question's solution and here comes the video just 4 hours ago!! Thanks for your help!

  • @cinime
    @cinime ปีที่แล้ว +2

    Understood! Super fantastic explanation as always, thank you very very much for your effort!!

  • @stith_pragya
    @stith_pragya 6 หลายเดือนก่อน +1

    UNDERSTOOD......Thank You So Much for this wonderful video.........🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻

  • @lokeshnegi5051
    @lokeshnegi5051 3 หลายเดือนก่อน +2

    I think some questions are made to skip and this is also one of those inlcuding medain of sorted arrays

  • @ArpanChakraborty-do6yz
    @ArpanChakraborty-do6yz 9 หลายเดือนก่อน +1

    Awesome 😎👍🏻 11:41

  • @sidharthsharma341
    @sidharthsharma341 ปีที่แล้ว +6

    Bhaiya which topic will come next ?.....what are upcoming plans

  • @guttulavybhav1030
    @guttulavybhav1030 4 หลายเดือนก่อน +2

    bro there is a correction if for suppose m=5 and n=6 and k=7 then if we take up all the 6 elements from arr2 then we need atleast one element to be taken from arr1. so low should be 1.
    so formula will be max(0,k-n)
    i.e
    7-6=1
    so low should be 1 in order to select k elements from left.

  • @urstrulyjatin
    @urstrulyjatin 28 วันที่ผ่านมา

    Thanks stiver, love you. See you at google soon.

  • @saikumargatla4706
    @saikumargatla4706 ปีที่แล้ว

    To be precise low=max(0, k-sizeoflargerarray)

  • @mehedihasansabbir7886
    @mehedihasansabbir7886 ปีที่แล้ว

    Great explanation

  • @devarapallivamsi7064
    @devarapallivamsi7064 9 หลายเดือนก่อน

    My code that's a bit different from what is explained in the video:
    Please do a dry run. you will get it.
    (Python)
    def kThElement(arr1, arr2, k):
    n1 = len(arr1)
    n2 = len(arr2)
    if n1 > n2:
    return kThElement(arr2,arr1,k)
    low = 0
    high = n1
    while low k:
    high = mid1 - 1
    continue
    if mid2 > n2:
    low = mid1 + 1
    continue
    l1 = float('-inf')
    r1 = float('inf')
    l2 = float('-inf')
    r2 = float('inf')
    if mid1 >= 1:
    l1 = arr1[mid1 - 1]
    if mid1 < n1:
    r1 = arr1[mid1]
    if mid2 >= 1:
    l2 = arr2[(k - mid1) - 1]
    if mid2 < n2:
    r2 = arr2[(k - mid1)]
    if l1

    • @lohithreddym4
      @lohithreddym4 5 หลายเดือนก่อน

      it's the same

  • @anshsaxena7297
    @anshsaxena7297 2 หลายเดือนก่อน +1

    UnderStood

  • @shubha_jagadeesh
    @shubha_jagadeesh 13 วันที่ผ่านมา

    understood😍

  • @Learnprogramming-q7f
    @Learnprogramming-q7f 9 หลายเดือนก่อน

    Thank you Bhaiya

  • @BOSS55
    @BOSS55 ปีที่แล้ว

    thansks

  • @Ungan_Tamilan
    @Ungan_Tamilan ปีที่แล้ว +1

    Forever strivers

  • @oyeesharme
    @oyeesharme 3 หลายเดือนก่อน

    understood bhaiya

  • @NazeerBashaShaik
    @NazeerBashaShaik 7 หลายเดือนก่อน

    Understood, thank you.

  • @vivekverma4012
    @vivekverma4012 ปีที่แล้ว +2

    But sir, ultimately low will reach max(k-n2,0) and high will reach min(k,n1) during the execution of while loop and will reach the desired answer. Then why not leave low=0 and high=n1 as it is?? May be it takes somewhat more time but as u say it's giving wrong output.

    • @samirkeshwani9409
      @samirkeshwani9409 ปีที่แล้ว

      if you pick n1 elements from a1 array (suppoes n1>k)then atlast when you find suitable configuration then in ans max(l1,l2) gives wrong answer as you picked an element which is after k so i think this might be the reson for high to be restritcted i am not sure though

    • @FusionArcs
      @FusionArcs 10 หลายเดือนก่อน +4

      Let's take an example, m = 3, n = 10, k = 12
      If we keep low = 0, and high = 3
      then mid1 = 1;
      low = 0 means we don't pick any element from the first array, and now the remaining elements need to be picked from the second array.
      mid2 = (k - mid1) = 12 - 1 = 11 ???? but there are only 10 elements in the second array
      Hence we can't start our search when we pick no elements from the first array.
      So our low must be max(k - n, 0) [no of elements at least need to pick for 1st array]
      Similarly, for high, we have to reduce the search space such that it can handle low K values.
      Note: this issue doesn't occur in the median problem because we guaranteed to split the search space in half every time.

    • @vivekverma4012
      @vivekverma4012 10 หลายเดือนก่อน

      @@FusionArcs understood, thanks😀

    • @anandpandey918
      @anandpandey918 4 หลายเดือนก่อน

      //Bruteforce Approach
      class Solution {
      public long kthElement(int arr1[], int arr2[], int m, int n, int k) {
      int[] merged = mergeTwoSortedArrayIntoThirdSortedArray(arr1, m, arr2, n);
      return merged[k - 1];
      }
      private int[] mergeTwoSortedArrayIntoThirdSortedArray(int[] arr1, int m, int[] arr2, int n) {
      int[] merged = new int[m + n];
      int i = 0, j = 0, k = 0;
      while (i < m && j < n) {
      if (arr1[i]

  • @AishwaryDandale
    @AishwaryDandale 5 หลายเดือนก่อน

    read solution in the sheet for clear explanation.

  • @SYCOA12CHAITANYAASOLE
    @SYCOA12CHAITANYAASOLE 5 หลายเดือนก่อน

    Understood !! 😍😍

  • @devarapallivamsi7064
    @devarapallivamsi7064 9 หลายเดือนก่อน

    Understood!

  • @YourCodeVerse
    @YourCodeVerse 11 หลายเดือนก่อน

    Understood✅🔥🔥

  • @per.seus._
    @per.seus._ ปีที่แล้ว

    UNDERSTOOD

  • @taneyasoni
    @taneyasoni ปีที่แล้ว +1

    please post the link to the prerequisite video.

  • @prikshit_sharma4071
    @prikshit_sharma4071 ปีที่แล้ว

    Thank you 😊❤

  • @arihantjammar8888
    @arihantjammar8888 ปีที่แล้ว

    understood

  • @arpitbhavsar6020
    @arpitbhavsar6020 ปีที่แล้ว

    Understood

  • @dogwoofwoof8154
    @dogwoofwoof8154 10 หลายเดือนก่อน +2

    easy 120 points :)

  • @tusharsingh1257
    @tusharsingh1257 6 หลายเดือนก่อน

    Completed
    29th May 2024

  • @girikgarg8
    @girikgarg8 ปีที่แล้ว

    Done

  • @sambhavraghav7360
    @sambhavraghav7360 29 วันที่ผ่านมา

    why these low and high conditions were not in median problem?

  • @redBaron_80
    @redBaron_80 หลายเดือนก่อน

    why was the low and high check was not needed in the median problem?

  • @allaboinadivakar1976
    @allaboinadivakar1976 ปีที่แล้ว

  • @surbhirathore._
    @surbhirathore._ 5 หลายเดือนก่อน

    Where are the notes?

  • @joelpires1342
    @joelpires1342 6 หลายเดือนก่อน

    Why marked as done, if it didn't work?

  • @DhananjayKumar-bd2jg
    @DhananjayKumar-bd2jg 10 หลายเดือนก่อน +1

    8:25

  • @pratyakshhhhhhhhhhhhhhhhhhhhh
    @pratyakshhhhhhhhhhhhhhhhhhhhh ปีที่แล้ว

    🎉🎉❤

  • @amitranjan6998
    @amitranjan6998 ปีที่แล้ว +1

    @Striver Bhaiya, For K=7 , why we can't peak from arr1 all the 6 element and 1 from array2 . Just confuse with low , why it's max(k-n2,0). If any one also help, will great for me.

    • @vivekverma4012
      @vivekverma4012 ปีที่แล้ว +1

      since, low=max(k-n2,0) so it indicates we have to select atleast these many elements from arr1.

    • @amitranjan6998
      @amitranjan6998 ปีที่แล้ว

      @@vivekverma4012 that I got it, my question why not to pick from arr1 first rather taking from arr2 first

    • @tapansonak1431
      @tapansonak1431 ปีที่แล้ว +1

      Watch the previous video, median of two sorted arrays, in that video he explained that we always pick elements from the smaller array, as it will reduce the time complexity.
      In the given example arr1[] has 6 elements and arr2[] has 5, so picked elements from arr2[].

    • @FusionArcs
      @FusionArcs 10 หลายเดือนก่อน +7

      Let's take an example, m = 3, n = 10, k = 12
      If we keep low = 0, and high = 3
      then mid1 = 1;
      low = 0 means we don't pick any element from the first array, and now the remaining elements need to be picked from the second array.
      mid2 = (k - mid1) = 12 - 1 = 11 ???? but there are only 10 elements in the second array
      Hence we can't start our search when we pick no elements from the first array.
      So our low must be max(k - n, 0) [no of elements at least need to pick for 1st array]
      Similarly, for high, we have to reduce the search space such that it can handle low K values.
      Note: this issue doesn't occur in the median problem because we guaranteed to split the search space in half every time.

    • @anandpandey918
      @anandpandey918 4 หลายเดือนก่อน

      //Bruteforce Approach
      class Solution {
      public long kthElement(int arr1[], int arr2[], int m, int n, int k) {
      int[] merged = mergeTwoSortedArrayIntoThirdSortedArray(arr1, m, arr2, n);
      return merged[k - 1];
      }
      private int[] mergeTwoSortedArrayIntoThirdSortedArray(int[] arr1, int m, int[] arr2, int n) {
      int[] merged = new int[m + n];
      int i = 0, j = 0, k = 0;
      while (i < m && j < n) {
      if (arr1[i]

  • @kunal5077
    @kunal5077 5 หลายเดือนก่อน

    showing TLE on code 360 please tell how to evaluate.

  • @shashwattopre9672
    @shashwattopre9672 ปีที่แล้ว

    Why high=max(k,n1)? I am unable to understand.

    • @nihalsingh6233
      @nihalsingh6233 ปีที่แล้ว

      High = min(N1, k )
      It is because if we want just 2 elements in left hand side and N1 is 5 then why we need increase our search space upto 5, just simply shrink it to 2. Because we will be need only 2 elements in left hand side.
      Hope it helps !!!

    • @anandpandey918
      @anandpandey918 4 หลายเดือนก่อน

      //Bruteforce Approach
      class Solution {
      public long kthElement(int arr1[], int arr2[], int m, int n, int k) {
      int[] merged = mergeTwoSortedArrayIntoThirdSortedArray(arr1, m, arr2, n);
      return merged[k - 1];
      }
      private int[] mergeTwoSortedArrayIntoThirdSortedArray(int[] arr1, int m, int[] arr2, int n) {
      int[] merged = new int[m + n];
      int i = 0, j = 0, k = 0;
      while (i < m && j < n) {
      if (arr1[i]

  • @ekanshgupta2930
    @ekanshgupta2930 ปีที่แล้ว

    can anyone tell why does this code not pass on gfg I have been trying to do it for 2hrs now and am unable to find the error

    • @GeorgianHarshAnand
      @GeorgianHarshAnand 10 หลายเดือนก่อน

      if(n > m) return this.kthElement(B , A , m , n , k)
      let i = Math.max( 0 , k-m) , j = Math.min(k , n)
      while(i = 0) l1 = A[mid1-1]
      if( mid2 < m) r2 = B[mid2]
      if(mid2 - 1 >= 0 ) l2 = B[mid2 - 1]
      if(l1

    • @jewelchakraborty9717
      @jewelchakraborty9717 8 หลายเดือนก่อน

      class Solution {
      public long kthElement( int a1[], int a2[], int n1, int n2, int k) {
      if(n1 > n2) return kthElement(a2, a1, n2, n1, k);
      int low = Math.max(0, k - n2);
      int high = Math.min(k, n1);
      while(low 0) l1 = a1[mid1 - 1];
      if(mid2 > 0) l2 = a2[mid2 - 1];
      if(l2 > r1) low = mid1 + 1;
      else if(l1

  • @raghavsapra2792
    @raghavsapra2792 ปีที่แล้ว

    3rd comment
    love u striver...

  • @cenacr007
    @cenacr007 ปีที่แล้ว

    us

  • @codderrrr606
    @codderrrr606 11 หลายเดือนก่อน

    kachwa bhai har jagah aa jata h

    • @codderrrr606
      @codderrrr606 11 หลายเดือนก่อน

      striver bhai kachwa bhai ko rok lo

  • @dewanandkumar8589
    @dewanandkumar8589 7 หลายเดือนก่อน

    Understood!

  • @nihalsingh6233
    @nihalsingh6233 ปีที่แล้ว

    Understood

  • @KAMLESHSINGH-vr3bl
    @KAMLESHSINGH-vr3bl ปีที่แล้ว

    understood

  • @rajatshukla2605
    @rajatshukla2605 หลายเดือนก่อน

    Understood!

  • @PrinceTripathi-j7u
    @PrinceTripathi-j7u 10 หลายเดือนก่อน

    Understood

  • @culeforever5408
    @culeforever5408 ปีที่แล้ว

    understood

  • @salendraraviteja8472
    @salendraraviteja8472 10 หลายเดือนก่อน

    Understood

  • @abhinanda7049
    @abhinanda7049 11 หลายเดือนก่อน

    understood

  • @NARUTOUZUMAKI-bk4nx
    @NARUTOUZUMAKI-bk4nx 9 หลายเดือนก่อน

    Understood

  • @udatyadeb101
    @udatyadeb101 10 หลายเดือนก่อน

    understood

  • @LearnerForever123
    @LearnerForever123 7 หลายเดือนก่อน

    Understood

  • @chiragbansod8252
    @chiragbansod8252 8 หลายเดือนก่อน

    understood

  • @hardikpatel352
    @hardikpatel352 6 หลายเดือนก่อน

    understood

  • @aryankumar3018
    @aryankumar3018 4 หลายเดือนก่อน

    Understood

    • @Rohan_K_Das_22BCE164
      @Rohan_K_Das_22BCE164 4 หลายเดือนก่อน

      Brother can you explain why the changes for low and high stuffs were used here and not in the median qn, am a bit confused in that ...

  • @krishkumar491
    @krishkumar491 3 หลายเดือนก่อน

    Understood

  • @ashishpradhan6250
    @ashishpradhan6250 5 หลายเดือนก่อน

    understood

  • @SitaRam-m1i
    @SitaRam-m1i หลายเดือนก่อน +1

    Understood

  • @Harsh-jc2bz
    @Harsh-jc2bz 3 หลายเดือนก่อน

    understood

  • @anmolsaini2783
    @anmolsaini2783 3 หลายเดือนก่อน

    understood