Simonas Šaltenis
Simonas Šaltenis
  • 10
  • 155 589

วีดีโอ

AALG9: External-memory algorithms, an example
มุมมอง 1.2K9 ปีที่แล้ว
AALG9: External-memory algorithms, an example
AALG8: Sweep-line algorithms, an example
มุมมอง 19K9 ปีที่แล้ว
AALG8: Sweep-line algorithms, an example
AALG7: Building Kd-trees and range trees: presorting
มุมมอง 4.7K9 ปีที่แล้ว
AALG7: Building Kd-trees and range trees: presorting
AALG6: Amortized analysis example
มุมมอง 15K9 ปีที่แล้ว
AALG6: Amortized analysis example
AALG5: Flow networks, maximum bipartite matching example
มุมมอง 74K9 ปีที่แล้ว
AALG5: Flow networks, maximum bipartite matching example
AALG4: Greedy algorithms, the coin changing example
มุมมอง 21K9 ปีที่แล้ว
AALG4: Greedy algorithms, the coin changing example
AALG3: Dynamic programming, the coin changing example (part 2)
มุมมอง 2.6K9 ปีที่แล้ว
AALG3: Dynamic programming, the coin changing example (part 2)
AALG1: Introduction, prerequisites
มุมมอง 1.1K9 ปีที่แล้ว
If you need to refresh some of the prerequisites, the relevant sections of CLRS are listed on this AAU moodle page: www.moodle.aau.dk/mod/page/view.php?id=319163
AALG2: Dynamic programming, the coin changing example (part 1)
มุมมอง 11K9 ปีที่แล้ว
AALG2: Dynamic programming, the coin changing example (part 1)

ความคิดเห็น

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

    I was looking for some proof that greedy works for our currency system for "coin change problem", because in some cases we apply DP and some Greedy. So happy to find this video. Thanks for awesome explaination!

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

    👍🏻👍🏻

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

    Thank you so much for this fantastic explanation

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

    For people trying to implement this, be aware of the following: Let's say you have a set of points where the median in x is 80 for example, but you have multiple points where x is 80. Now on this line: if Y[i].x <= X[v].x then append Y[i] to Yl else append Y[i] to Yr. You will end up adding more to the left side then expected! IN such a way that X_l.size() != Y_l.size() && X_r.size() != Y_r.size().

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

    Wow, very clear!

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

    clear

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

    I'm so grateful...

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

    The residual network is unclear.

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

    Shitty explanation

  • @CristinaA-q6r
    @CristinaA-q6r 3 ปีที่แล้ว

    wow i actually understood immediately! thank you so much!

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

    Hi, I know this is late, At 8:50, doesn't the algorithm return only array of 'unique elements' instead of array of 'unique elements + single instance of element that is repeated?

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

      It returns an array of unique elements + its size.

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

    Are you still alive?

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

    the man stuttered so much i couldnt understand half of it

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

    Thank you sir !

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

    minor mistake, i think on 2:27 the second maximum matching example is wrong, since it only has 3 edges, instead of 4. Thank you for the content, really helped me understand the definition

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

    bullshit

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

    thanks, this is remarkable explaination

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

    Thanks a lot sir

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

    Thanks you very much. Didnt understand though how median is O(1) amortized? can it be maintained while inserting somehow?

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

      The only thing needed is that median is worst-case linear (which it is, see for example Section 9 of the CLRS textbook). Then it is O(1) amortized in this exercise, because every time you do it, half of the elements are removed. The first half of the video shows that using the accounting method.

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

    THANK YOU SO MUCH!!!!!!!

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

    Can we also use max heap on y coordinate I think that would be more appropriate for this use

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

      removing on heap is harder and could yield O(n) time complexity, so it's not recommended

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

      @@luvianp4984 what? deleting an item from min-max heaps is O(log(n)) even in worst case

  • @RakeshGupta-ft6cc
    @RakeshGupta-ft6cc 5 ปีที่แล้ว

    This cant be more worse

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

    what happens if you increase the all edges capacity as n+1. Ofcourse we will think that |A| =|B| =n.

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

    that's great! cool too!

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

    thanks but your solution is wrong ! the good upper bond is 2*min{ |L| + |R|} + 1

  • @justANovaLoom
    @justANovaLoom 6 ปีที่แล้ว

    Incredible, thanks u!

  • @huiyuhe5143
    @huiyuhe5143 6 ปีที่แล้ว

    This Sudo codes doesn't work . try a simple input : Coins[2.3,5] and amount = 4 , it gives output 1 , but it should be 2 . He was using greedy concept .

  • @mingjunzhang
    @mingjunzhang 6 ปีที่แล้ว

    Good one, thank you for the work.

  • @AmiDeLaMusique
    @AmiDeLaMusique 6 ปีที่แล้ว

    Excellent demonstration! Thank you.

  • @richardliu7848
    @richardliu7848 6 ปีที่แล้ว

    Thank you, thank you!

  • @daamnson
    @daamnson 6 ปีที่แล้ว

    What if the lines are 2,(1,3) and 1,(2,4) ?

  • @jemmamariex3
    @jemmamariex3 6 ปีที่แล้ว

    thanks for the explanation! One question though, why is the upper bound |v|+1? You mentioned that v is the number of vertices, so what does the +1 do?

    • @simonassaltenis7839
      @simonassaltenis7839 6 ปีที่แล้ว

      It is the length of the augmenting path in terms of the number of *edges*. Look at the path that I drew in the residual network and count the edges. Each vertex from |V| has an edge before it in this path (so |V| edges), plus there is an edge before t.

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

      @@tw6428 yes

  • @laurrsxo
    @laurrsxo 6 ปีที่แล้ว

    <3

  • @OatmealExtreme
    @OatmealExtreme 6 ปีที่แล้ว

    Great detailed explanation!

  • @danieldude15
    @danieldude15 6 ปีที่แล้ว

    Good Job! very clear. would you know where can i find information regarding proof of correctness of this algorithm? I mean why does this promise maximum matching?

    • @simonassaltenis7839
      @simonassaltenis7839 6 ปีที่แล้ว

      As you can see, the video refers to the popular "CLRS" textbook (mitpress.mit.edu/index.php?q=books/introduction-algorithms). It includes proofs of correctness. In particular, Max-flow min-cut theorem (Theorem 26.6 in CLRS) proves that Ford-Fulkerson finds a maximum flow, then Lemma 26.9 shows that we correctly find a maximum bipartite matching, if we transform the problem into a max-flow problem as shown in the video.

    • @danieldude15
      @danieldude15 6 ปีที่แล้ว

      Thank you very much! how did students manage before the internet?

  • @calinbogdan9894
    @calinbogdan9894 7 ปีที่แล้ว

    Hi, I have a question. Minute 12:34 if l==r return false. why are you checking left with right? should you checl the i with the values from the substring?

    • @simonassaltenis7839
      @simonassaltenis7839 7 ปีที่แล้ว

      l and r denote the bounds of the subproblem: CheckU has to compare A[i] with A[l], A[l+1], ..., A[r]. When l=r, the subproblem contains only one element, which is compared to A[i] in the next line.

    • @HateAcceptedButThinkAgain
      @HateAcceptedButThinkAgain 6 ปีที่แล้ว

      Thanks

  • @derarcane
    @derarcane 7 ปีที่แล้ว

    Thanks. I enjoyed the explanation using the pseudocode, though I'd also like to see the how time complexity of the recurrence relation is calculated.

  • @anandkulkarni2111
    @anandkulkarni2111 7 ปีที่แล้ว

    The solution to this problem is subset of all the solutions to the ramanujan-hardy partition of a positive number. The way to filter the answer is eliminate all solutions from original problem for all coins which are not in given set :)

  • @pauliewalnuts6734
    @pauliewalnuts6734 7 ปีที่แล้ว

    thank you this was amazing

  • @TheMagnas26
    @TheMagnas26 7 ปีที่แล้ว

    very nice speech. thanks!

  • @MJIsThePedobear
    @MJIsThePedobear 7 ปีที่แล้ว

    Really nice video, thank you sir!

  • @ptyxs
    @ptyxs 7 ปีที่แล้ว

    Extremely interesting and enlightening. I really wish you go on making other videos of that kind, it would really help many people.

  • @dhananjayans
    @dhananjayans 7 ปีที่แล้ว

    Awesome explanation (y)

  • @zoomzoom1177
    @zoomzoom1177 7 ปีที่แล้ว

    Thanks for the help!

  • @adrianfaciomedina6611
    @adrianfaciomedina6611 7 ปีที่แล้ว

    I used a variation of this for actual software running on production floor.thanks

  • @bR4GE
    @bR4GE 8 ปีที่แล้ว

    Thanks! Just had to change i>0 to i>=0 to make it work.

  • @shivamsharma8874
    @shivamsharma8874 8 ปีที่แล้ว

    is there any complete algorithm course like this?

    • @simonassaltenis7839
      @simonassaltenis7839 8 ปีที่แล้ว

      Not really. It was just an experiment to support a regular course I taught...

  • @SuryaPrakashVIT
    @SuryaPrakashVIT 8 ปีที่แล้ว

    Super sir you made to understand it easily thank you

  • @maxtvtvtv8623
    @maxtvtvtv8623 8 ปีที่แล้ว

    great video, thank you

  • @peitili50
    @peitili50 8 ปีที่แล้ว

    I have a question about the recursive formula: C(i,a) = min{C(i+1, a), 1 + C(i, a-den[i])}, what is the reason you only consider choosing one den[i] why the recursive formula is not this: C(i,a) = min(C(i+1,a), k + C(i, a - k * den[i])) for all possible k