[LeetCode]4. Median of Two Sorted Arrays 中文

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

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

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

    真是谢谢一姐了,看了那么多视频,就你把我讲懂了....

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

    赞一个!讲的很清楚,可以从3:10开始进入binary search的正题

  • @yumindev
    @yumindev 4 ปีที่แล้ว +34

    其他人的视频都没听懂,就你的听懂了。。。。老师你还收学生么

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

    把短的数组放在前面(分割的数组为短的数组),不是因为时间复杂度更低,而是因为把长的数组放在前面(分割长的数组)会导致运行出错。比如说现在有两个数组,短数组有1个元素,长数组有5个元素,如果分割长数组,有可能在分割的过程中,长数组的左边只有一个元素,这时候需要短的那个数组有两个元素,才能分割成功,但是显然短的数组只有1个元素,所以这是不可能的,短数组那边计算的index就会超出短数组的长度,这时候就会报错。反之如果分割短数组,可以保证可以在长数组那边找到足够多的数字补充左边的总数,计算出的index永远都在数组范围内。

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

    謝謝 你講得最清楚! 困擾我好久的題目終於懂了

  • @yuxun7371
    @yuxun7371 3 ปีที่แล้ว

    这讲得太清楚了。没二话,先关注为敬。

  • @flytalkers
    @flytalkers 4 ปีที่แล้ว +3

    也蠻想聽聽一姊講300. Longest Increasing Subsequence題型,解O(N*logN),用binary search的解法去講,因為我看youtuber上跟leetcode的官方solution在display example時,都沒有這麼可視化,如果方便,想聽看看這題。

  • @sixuanwu1621
    @sixuanwu1621 5 ปีที่แล้ว +8

    “找对了,耶!”一姐好可爱

  • @john22594
    @john22594 4 ปีที่แล้ว

    Dhebbsu jidu naba daba ganu jinu rabu deebu Thanu dhan nirankar

  • @intoeleven
    @intoeleven 5 ปีที่แล้ว +14

    其实如果cutB = len/2 - cutA,然后如果为基数就直接return min(r1, r2); 这样貌似更好理解一些

    • @liucharles2973
      @liucharles2973 4 ปีที่แล้ว

      说的对。

    • @OrionRox
      @OrionRox 4 ปีที่แล้ว

      老哥说得对,那个(len + 1) / 2 - cutA确实有点纠结

    • @zilinli187
      @zilinli187 4 ปีที่แล้ว

      nb

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

      我的理解是一姐的解法是一定要写cutB = (len + 1) / 2 - cutA 的。因为有一个设定,1. 如果两个数组的总长度是偶数,当cut A后,计算得到的cutB一定是让所有左边的个数等于所有右边的个数。2. 如果两个数组的总长度是奇数,当cut A后,计算得到的cutB一定是让所有左边的个数比所有右边的个数多1个。因此,当总长是奇数的时候,才能return Math.max(l1, l2), 返回的就是多出来的这1个数,也就是中位数。

    • @codemonkey2614
      @codemonkey2614 2 ปีที่แล้ว

      [1,3]
      [2,4,5]
      比如这个例子,总长度len是5,如果cutA = 1, 那么cutB = len / 2 - cutA = 2 - 1 = 1. 这样左边[1,2], 右边[3,4,5], median就成2了。 如果cutB = (len+1) / 2 - cutA = 2. 这样左边[1,2,3], 右边[4,5], median是3。 如果总长是偶数,是否加1,结果都是对的。

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

    I don't quite understand the part of A_endK = cutA-1 and A_startK=cutA+1. Can someone help with it??

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

    好老师😄😄

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

    7分23秒一看秒懂, 谢谢一姐

  • @bz9031
    @bz9031 4 ปีที่แล้ว +4

    讲得不错,但是第一种方法叫mergesort比较欠妥, mergesort是一个专有名词专指对一个数组进行排序,这个只是merge two sorted array

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

    一姐你好,有一部分没懂。8:43 讲到A_startK 和 A_endK 是维护二分搜索的范围,我理解A_startK, A_endK这里就是在A数组做二分搜索时的左右边界。10:08:else if (L2 > R1) {A_startK = cutA + 1;} 反复听了很多遍,也没懂为什么 A_startK = cutA + 1。首先cutA记录的是A数组分割后数字偏小部分数组的长度,A_startK = cutA + 1,将A数组的二分搜索的左边界右移到cutA + 1位,为什么?然后下一轮循环,cutA = (A_endK + A_startK) / 2, 这步计算在常规二分搜索算法里是求中位坐标,在这道题里又该如何理解呢? 希望这里可以再讲的细致一些。

  • @coffeegoose
    @coffeegoose 5 ปีที่แล้ว

    谢谢 ,讲的很清楚!已经多关注了你的频道

  • @yuegong2758
    @yuegong2758 2 ปีที่แล้ว

    请问一姐做图的软件是什么呀

  • @linhanwang4937
    @linhanwang4937 2 ปีที่แล้ว

    看过其他答案,总感觉理解不透彻。你这个cut的定义很精确,理解起来就很清晰了。

  • @evelynbrandonsmusicchannel9235
    @evelynbrandonsmusicchannel9235 4 ปีที่แล้ว +4

    想你以前应该是教书的,优秀教师,三八红旗手一类的

  • @AK-bx4cv
    @AK-bx4cv ปีที่แล้ว

    讲的挺好的 比其他的清楚很多

  • @zhaowencheng8690
    @zhaowencheng8690 4 ปีที่แล้ว

    很清楚!谢谢一姐!

  • @jimsitu5511
    @jimsitu5511 3 ปีที่แล้ว +8

    按照你这个例子,第一次跑的时候cutB应该= (14 + 1)/2 - 2 = 5 而不是 6

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

    一姐讲解的非常厉害,能把代码的link也放在description里就好了

  • @winterheat
    @winterheat 3 ปีที่แล้ว

    因為有點趕,還沒全看,但如果可以對短 array 做 O(log m) 的動作,但每次亦要在長 array 做 O(log n) 動作,那不是會 O(log m) x O(log n) ?

  • @frankliu4500
    @frankliu4500 4 ปีที่แล้ว

    What if you have more than two sorted arrays

  • @magicboxtinyhome322
    @magicboxtinyhome322 4 ปีที่แล้ว

    谢谢一姐!很容易听明白

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

    聪明!

  • @johnnyzhao2668
    @johnnyzhao2668 4 ปีที่แล้ว

    谢谢一姐🙂

  • @lukeguan1397
    @lukeguan1397 4 ปีที่แล้ว

    讲得很清楚啊,看了那么多个视频终于搞懂了。 BTW, 你的声音好像赵小棠。

  • @yumindev
    @yumindev 4 ปีที่แล้ว

    请问您用什么软件画的动画 ?

  • @jaydai2174
    @jaydai2174 2 ปีที่แล้ว

    讲的通俗易懂

  • @vincentj8954
    @vincentj8954 3 ปีที่แล้ว

    最开始cutB 图向右多画了一格, 蓝色到9 就结束, 不过这是看过讲的最清楚的一版

  • @xiaomingniu5291
    @xiaomingniu5291 4 ปีที่แล้ว

    讲的挺好的,不过11:00处有个小错误,当时A应该只贡献了3个元素 (2 + 5) / 2 = 3

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

    如果要求O(n)= log(m+n) 呢?

    • @leon10982
      @leon10982 4 ปีที่แล้ว

      requirement said "The overall run time complexity should be O(log (m+n))."

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

    len+1那里没理解

    • @tracy_gao
      @tracy_gao 5 ปีที่แล้ว

      盯着看了一个小时,终于有点理解了,貌似是如果总长度是奇数就把中位数包到分割线左边?

    • @jasonwang5335
      @jasonwang5335 4 ปีที่แล้ว

      @@tracy_gao len其实也可以,你自己在纸上画一下,你选择len的话就意味着最后取中位数的时候就得把奇数和偶数的取值方式 交换了

  • @ZhouHaibo
    @ZhouHaibo 3 ปีที่แล้ว

    This is a brute force approach, it is O(m+n) time but not O(log(m+n)).

  • @kunli1205
    @kunli1205 3 ปีที่แล้ว

    花了一个半小时, 才弄明白为啥要这样做。这个题目可真难。 不知道一姐是怎么想到的

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

    有些公司是,你沒 O(log (m+n)) 就馬上不請,這是多麼的公平呀。面試變成了 "答案知道" 審核

  • @XiaolongLiu-es9hw
    @XiaolongLiu-es9hw ปีที่แล้ว

    就冲这个名字,subscribe 一波

  • @sherrywu2955
    @sherrywu2955 4 ปีที่แล้ว

    You, only you, 让我明白了

  • @shunleungchan7375
    @shunleungchan7375 4 ปีที่แล้ว

    老师,你还收学生吗

  • @yayining5705
    @yayining5705 4 ปีที่แล้ว

    讲的可太清晰了

  • @john22594
    @john22594 4 ปีที่แล้ว

    Inthatha thinuku daba

  • @andychang1179
    @andychang1179 4 ปีที่แล้ว

    666

  • @baisu8032
    @baisu8032 4 ปีที่แล้ว

    not the best solution I'm looking for

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

      Binary search is the optimized solution.