Leetcode problem Longest Palindromic Substring (two solutions)

Поділитися
Вставка
  • Опубліковано 5 жов 2024
  • Solving a medium coding interview question from Leetcode leetcode.com/p...
    Final code: github.com/Err...
    Subscribe for more educational videos on algorithms, coding interviews and competitive programming.
    Github repository: github.com/Err...
    Second YT channel for streams: / errichto2
    FB and Twitter: / errichto & / errichto
    Frequently Asked Questions: github.com/Err...

КОМЕНТАРІ • 202

  • @stanshen5207
    @stanshen5207 3 роки тому +343

    Your first statement made me crying for 2 hours straight

  • @youssefmuhamad3213
    @youssefmuhamad3213 4 роки тому +207

    I love your tutorials, how you go from the naive solution to the optimized one

    • @Errichto
      @Errichto  4 роки тому +47

      Thanks :)

    • @musafirgauravv
      @musafirgauravv 4 роки тому +11

      I too liked his same approach, it helps the people who don't have the ability to see optimized solutions at the very beginning.

    • @aj9706
      @aj9706 4 роки тому +2

      @@Errichto Given an array of integers,find the maximum value of a[i] - a[j] + a[k] with constraints I

    • @shashankmishra9238
      @shashankmishra9238 4 роки тому

      @@aj9706 hi will seeing it as maximise ak-aj+ai and transversing i with j= i+1 and k=n-1 work?

  • @ashutoshmaheshwari833
    @ashutoshmaheshwari833 4 роки тому +75

    This is the beauty when someone red on codeforces solves interview problems. It was so easy for you Errichto, but for the sake of your audience you explained it thoroughly. Thanks :)

  • @harshitmittal1217
    @harshitmittal1217 4 роки тому +12

    I just love how you go from the simplest to the most optimized solution and the way you explain the process for optimizing the code.

  • @BigFatSandwitch
    @BigFatSandwitch 4 роки тому +60

    The small c++ optimizations you mentioned in this video will be really helpful for me while coding. Thanks for putting out content like these

    • @deDeca1000
      @deDeca1000 4 роки тому +9

      This optimization isn't strict to c++. When we use &, it'll compute the 2 parts of operations independently of your logical value, when we use &&, it'll check the first part and if it's false the second part will not be computed because it'll be false anyway. The same works with || and |, when we use ||, if the first part is true, the second will not be computed because the operation will be true anyway.

    • @a.yashwanth
      @a.yashwanth 3 роки тому +1

      @@deDeca1000 But this doesn't work in java.

    • @deDeca1000
      @deDeca1000 3 роки тому

      @@a.yashwanth I guess it works too as a simple research that I did here.

    • @kruz2919
      @kruz2919 3 роки тому

      @@a.yashwanth Yes it works in Java since I kept the length check before the string check and my solution got accepted albeit with long runtime. Just one little manoeuvre to change the verdict from TLE to Accepted.

  • @varunv6641
    @varunv6641 4 роки тому +3

    Wow, no ads in any video.... This man is a legend

  • @harishgehlot__
    @harishgehlot__ 2 роки тому +1

    Thank you brother from another mother, everyone on UA-cam showing the code of optimised approach,
    Only you showed the brute force

  • @wedding_photography
    @wedding_photography 4 роки тому +64

    I wish you covered the Manacher's algorithm as well.

  • @kaiovieira230
    @kaiovieira230 4 роки тому +4

    Love this! Because this is a simpler problem (comparing others in this channel) I could understand the proccess and I've got so many things to learn. Thank you!

  • @dcodernz
    @dcodernz 4 роки тому +13

    Great stuff, Errichto! There are far more successful UA-camrs with a greater following. BUT I think you're way ahead of them in terms of material and quality content. Would love to see more videos like this. I think at the moment you're far under rated. Keep up the good work! 😀

  • @MakoMako1234321
    @MakoMako1234321 4 роки тому +25

    I'd love to watch O(n) solution from you, great video btw

    • @ritik84629
      @ritik84629 4 роки тому

      Yes indeed.

    • @МаксимЮрченков-ы5ь
      @МаксимЮрченков-ы5ь 4 роки тому +2

      Notice that any palindromic substring is a common substring of s and rev(s). Now look at suffix structures in context of finding longest common substring.

  • @muskanagarwal7937
    @muskanagarwal7937 4 роки тому

    I loved your way of breaking down the problem and gradually moving towards more optimized version. Would love your input on codechef problems from long challenge, cook off, lunchtime and various other categories of problem.

  • @raushankumarraman7259
    @raushankumarraman7259 4 роки тому +1

    Your explanations of problems are awesome going from bruteforce approach to optimisation......

  • @atibhiagrawal6460
    @atibhiagrawal6460 4 роки тому +3

    Thank you so much for these Leetcode tutorials. Absoultely love them !

  • @mfaraday4044
    @mfaraday4044 4 роки тому +1

    Mindblowing sir .
    Thankyou very much .
    Your way of explaination is unique.

  • @ShreyanGoswami
    @ShreyanGoswami 4 роки тому

    Thanks for the explanation. I came to watch your video after I solved the problem myself. I was not disappointed because you explored many options. For N^2 time complexity what I did was reversed the original string and used longest common substring between the original string and the reversed string. I got an edge case where it was finding strings of length 2 to be palindrome even if they were not.

  • @sanfarans
    @sanfarans 4 роки тому +3

    My first thought was hashing.
    It's possible to hash the string and hash the reversed string.
    Then to find the longest palindrome, we can for every mid point (or double mid points for even length palindromes) iterate over it's prefixes and suffixes and compare them using hashes.
    Now add binary search and we don't have to do that for every pref/suf length and just for O(logn) of them.
    If I am not mistaken the total complexity would be O(n*logn)

    • @sanfarans
      @sanfarans 4 роки тому +1

      On the other hand hashes can collide so it's kinda randomised.
      But still, risk is pretty low and can be further lowed by using pairs of hashes.

    • @Errichto
      @Errichto  4 роки тому +4

      You are completely right, and we can even get O(N) with hashes if we increment the answer by 1 instead of binary searching :)
      I just didn't want to talk about hashes in this video, too many things for a beginner's problem.

    • @damcism
      @damcism 4 роки тому +1

      "we can for every mid point (or double mid points for even length palindromes) iterate over it's prefixes and suffixes and compare them using hashes."
      I don't understand this sentence. What do you mean by "it's prefixes"? By "it" do you mean "mid point"? If so, then what do you mean by a "prefix/suffix of a mid point"?

    • @praveenojha33
      @praveenojha33 4 роки тому

      @@Errichto Can you please explain O(N) approach using hashes or can you give some reference to any blog or article where it is discussed ? I can only figure out O(NLogN) approach using hashes :(

    • @sanfarans
      @sanfarans 4 роки тому

      @@praveenojha33 O(n) approach is Manacher's algorithm

  • @Akshaykumar-bl8ok
    @Akshaykumar-bl8ok 2 роки тому

    One Errichto video teach you a lot of extra things along with the actual solution.

  • @achavan1
    @achavan1 4 роки тому

    I really appreciate your videos. I think the intuition behind how you derive the solution is outstanding. Helps a lot to understand how you came develop an approach.

  • @RaGa_BABA
    @RaGa_BABA 3 роки тому +25

    errichto makes me wanna leave programming and love programming at a same time..

  • @MrSun8080
    @MrSun8080 4 роки тому +3

    Hi Errichto thank you for the video! I really appreciate your explanation on the problem that many users struggle. Do you mind if you could make more videos on the solution that are on the list from top 100 liked questions or top 100 interview questions that are more of a medium level from the LeetCode? this way I think more entry-medium level coders can enjoy your channel more instead of diving into your explanation on hard algorithmic questions (though I enjoy those too). Hope you can take this into a consideration! thank you always.

  • @AmanDeep-fp9ui
    @AmanDeep-fp9ui 4 роки тому +1

    Personal opinion but I would always go O(nlogn) with hashing and binary search. Its more intuitive than manacher algorithm and has just a logn extra factor.

  • @Zzznmop
    @Zzznmop 4 роки тому +12

    thank you for the lovely 25 minute explanation even though i know you can do this in 25 seconds. you are truly a gift to us all who enjoy competitive programming.
    p.s. i finally solved my first problem solved in under 5 minutes during a 3-problem online assessment, and boy did it feel amazing! Too bad the other two took about an hour each because i got ahead of myself after the first solution :P

    • @Dennis-Ong
      @Dennis-Ong 3 роки тому +1

      The high is amazing when you solve a (relative difficult ) problem. The low is terrible when you trying to understand a solution or freeze in interview.

  • @Laeyz
    @Laeyz 4 роки тому +4

    you really made me question my understanding of binary search.I didn't get that n^2logn approach.
    Edit: i get it now , thanks.

    • @devendrasingh4776
      @devendrasingh4776 4 роки тому

      Tell me bro what you understand please . 😢😢

    • @Laeyz
      @Laeyz 4 роки тому

      @@devendrasingh4776 normally you search for a value in array or something but in this he was trying different answers in binary search way, it was long ago so i dont remember much.

    • @devendrasingh4776
      @devendrasingh4776 4 роки тому

      @@Laeyz but why he did even odd thing

  • @shahriardhruvo4333
    @shahriardhruvo4333 2 роки тому

    You are awesooome, thank you. I love that you first write the naive solution and then explain and improve the code bit by bit :3

  • @Xyvier
    @Xyvier 4 роки тому +6

    This is so informative and awesome!

  • @chongluo3490
    @chongluo3490 4 роки тому +1

    Wow, your tutorial is so cool, it gives me a more general solution for optimization which could be applied to other Leetcode problems.

  • @CarrotCakeMake
    @CarrotCakeMake 4 роки тому +1

    Loved it, good job. One small observation, the string "aaaaaa....aaaaa" is a degenerate case for time in your algorithm. Instead of iterating mid in 0, 1, 2, 3, 4, 5..... you could iterate mid in n/2, n/2 + 1, n/2 - 1, n/2 + 2, n/2 - 2, ....
    Then just check if mid is far enough away from the edges to make a possible new best. That puts you really close to O(n) .

    • @Errichto
      @Errichto  4 роки тому +2

      Sure, but then there can for sure be something similar to aaa...aa that will still be slower. It just shows that a problem author has a hard job of creating good tests :D

  • @hardikprajapati671
    @hardikprajapati671 4 роки тому +2

    Can you please give us tutorial on Manacher's Algorithm !! i didn't understand well i have seen lots of video on Manacher's Algo!! you teaches very well!!

  • @singh.guransh
    @singh.guransh Місяць тому

    Great explanation Errichto! Loved it! ❤

  • @arghyadeepmandal4458
    @arghyadeepmandal4458 Рік тому

    Came here for Manacher's but learnt a lot of new things 🙂.Beauty😎

  • @prathamnishad1033
    @prathamnishad1033 4 роки тому +11

    on average how many problems you solve in a day (now and in the past).
    and
    Do you recommend sticking to a problem even when you cant get you head around it for days or leave it and look at the solution(or hint).

  • @yugioh8810
    @yugioh8810 4 роки тому +11

    I didn't understand the parity part, can anybody elaborate on that ?

    • @huan8036
      @huan8036 3 роки тому +4

      As Errichto pointed out, using a palindrome, we can have a sub palindrome by removing two outermost value. The sub palindrome has the same parity as the original palindrome (the longer one).
      It's a fact that a palindrome with EVEN length can only have sub palindromes with EVEN length. The same thing happens to palindromes with ODD length - their sub palindromes must have ODD length too.
      Therefore, if we found a palindrome which has an EVEN length, the possible longer palindrome derived from it must have an EVEN length too (i.e they have the SAME parity).
      The parity part of Enrichto algorithm is to make sure we only looking for length that are worth checking. E.g. If we want to check if there's a palidrome with EVEN length, we will only look for EVEN length cases.
      The binary search really helps this idea to happen in O(logN); but we can implement it in O(N) just by looping through the string with the index increase by 2 each loop
      Hope this helps

    • @somesome1315
      @somesome1315 3 роки тому

      parity is for checking the length of best_s is whether odd or even

    • @anonymoussloth6687
      @anonymoussloth6687 3 роки тому

      @@huan8036 Can you explain a bit more of how binary search is even used here? I understand the even and odd length logic of the palindrome. But how and why Binary search is used in this is still not clear

  • @035asadali8
    @035asadali8 2 роки тому

    damn amazing i just did this question today but your dynamic programming solution is faster than mine, amazing

  • @akshobhya_8690
    @akshobhya_8690 4 роки тому

    It is the best video I've ever seen for this problem. Your approach is awesome dude.

  • @yogeshvishnole1264
    @yogeshvishnole1264 3 роки тому +1

    Not able to understand the second solution in which you use the parity can you explain it with some diagrams. Thanks for sush easy explanations.

  • @fbru02
    @fbru02 4 роки тому

    Excellent video !! need to bring back the second errichto

  • @ambersinghrok
    @ambersinghrok 4 роки тому

    This is the best explaination i have heard so far...plzzz me lots of videos it will be helpful for my upcoming interviews.

  • @MakoMako1234321
    @MakoMako1234321 4 роки тому +1

    Why this two loops (odd/even length) are one after another? Why aren't they used based on length of string? Why it doesn't break when break when used on odd length string? (because in this case part of algorithm for odd is used first, and then part for even length is used on odd length) Why isn't it a problem?
    edit: Also why after using only one loop (for even or odd) this is not working properly?
    edit2: Ok, now I (probably) understand. One loop is for finding odd length palindrome (not odd length input), and other is for even length palindrome (not even length input). Am I right now?

  • @EdinssonMelo
    @EdinssonMelo 4 роки тому

    Thx for the tutorial. I would appreciate it if you continue to share well known topics.

  • @mahesh4274
    @mahesh4274 4 роки тому +2

    Thank you for the explanation..... Hoping you will make more tutorials for beginner's like me...

    • @Errichto
      @Errichto  4 роки тому

      So, something at this level or easier?

    • @mahesh4274
      @mahesh4274 4 роки тому +1

      @@Errichto same level, also tips on data structures/algo if possible. You know like how to approach the problems with specific ds. Thanks for the reply.

    • @kaiovieira230
      @kaiovieira230 4 роки тому

      For me, something at this level is great! But easier things would be awesome too

  • @lequocthinh8992
    @lequocthinh8992 3 роки тому

    The C++ optimization's rly helpful

  • @mahesh4274
    @mahesh4274 4 роки тому +3

    Can you make a video on how to get started in programming and also competitive programming, from zero to hero, how to reach at your level???

    • @vivekchoudhary8745
      @vivekchoudhary8745 4 роки тому +4

      Goto any coding platform I prefer leetcode, select the difficulty to easy initially.
      First and foremost, make a habit of solving problem by thinking out loud, marker and board or pen and paper, DO use it, I repeat, USE MARKER AND BOARD OR PAPER AND PEN BEFORE EVEN LAYING YOUR HANDS ON THE KEYBOARD.
      Work our the problem slowly.
      This is the key. I used to jump straight to keyboard when I started doing competitive coding.
      Using the pen and paper beforehand to workout the problems (the process) builds problem solving networks in your head.
      Good luck!
      Don't give up!!

    • @mahesh4274
      @mahesh4274 4 роки тому +1

      @@vivekchoudhary8745 thanks for the big reply, I will try to make a habit of pen n paper and practice.

    • @vivekchoudhary8745
      @vivekchoudhary8745 4 роки тому

      @@mahesh4274 I'd be super glad if I could help others, also, as you progress further you will realize that there are different domains of problems, like graph problems, string related problems, array, tree or hash etc. try to find the out which part is your weakest work on it.
      fight onn!!

    • @rishabhb2688
      @rishabhb2688 4 роки тому +1

      Look at the Getting Started section in his github repo.
      If you want a good book download competitive programmer's handbook and practise codeforces, USACO, ACM problems, if youre prepping for olympiads, if for an interview, do some leetcode too.

    • @mahesh4274
      @mahesh4274 4 роки тому +1

      @@vivekchoudhary8745 I just started programming, but I will try to help if I can, I will try to create a blog or youtube channel to share knowledge..

  • @danieltannor6647
    @danieltannor6647 4 роки тому

    Thanks for your explanation! A quick note: @19:04, I don't think it's N positions, but rather 2N-1 positions (because middles can be spaces between characters)

  • @nurjamil6381
    @nurjamil6381 3 роки тому

    love ur videos bro, didnt quite understand in binary search part tho, maybe with a little bit more replay i can understand it, thank you for the video!

  • @minciNashu
    @minciNashu 2 роки тому

    string substr allocates a new string. string_view, span or plain pairs of pointers should be used in examples like this, for constant time.

  • @mechashadowx
    @mechashadowx 4 роки тому +6

    helpful details, that was amazing

  • @mukulkumar2316
    @mukulkumar2316 4 роки тому

    plz make a video on greedy problems, i just don't know how to go about it.. always loved ur channel , thanks in advance

  • @kenjiaoki9897
    @kenjiaoki9897 3 роки тому +4

    Could someone kindly refer me to some material explaining the use of parity in Binary search? I did not exactly understand what @Errichto was trying to do there.

  • @cojocarucosmin202
    @cojocarucosmin202 4 роки тому

    U r such a good teacher bro

  • @Gaurav-mq8yp
    @Gaurav-mq8yp 9 місяців тому

    Can you please make a video on Manacher's Algorithm Errichto?

  • @jeizart6982
    @jeizart6982 4 роки тому +4

    watching you makes me think of quitting my job

  • @paragroy5359
    @paragroy5359 4 роки тому +1

    Sir,it was really good.

  • @happyhappyguy5034
    @happyhappyguy5034 4 роки тому +2

    I don't understand the binary search one. Why do we need to consider parity?

    • @Errichto
      @Errichto  4 роки тому +8

      Because maybe there is a palindrome of length 6 but not of length 5. So what happens if you ask "can answer be 5?" in binary search and it turns out it can't? You will now search for answer between 1 and 4.

    • @happyhappyguy5034
      @happyhappyguy5034 4 роки тому

      @@Errichto thank you for replying, I understood it completely wrongly previously so I was very confused. But now I completely understand the solution.. :D This is very helpful btw!

  • @Quassar18
    @Quassar18 3 роки тому

    Funny thing: if you implement this solution in Swift language, it won't be accepted due to exceeded time. Test case has 1000 "a" chars string. I guess the only option is to go with a suffix tree then.

  • @techgamer1333
    @techgamer1333 4 роки тому

    Need More Videos Like this

  • @jonty3551
    @jonty3551 4 роки тому

    Hoped u would have covered manarch's algorithm as well!!!!

  • @RohanKumar-zn4qg
    @RohanKumar-zn4qg 4 роки тому

    Hello Errichto...Kindly upload videos on greedy strategy...I have solved more than 100 Div2C problems...yet whenever a greedy comes even in B ,I cant figure out whether greedy will work or not...or to which variable I should do greedy on.

  • @mesh475
    @mesh475 2 роки тому

    You are very smart. Great explanation

  • @CarrotCakeMake
    @CarrotCakeMake 4 роки тому

    I thought of a content suggestion, some of the "hacking" rules sound fun. It might be cool to make a video where you go through some of the winner's submissions and try to find counter examples for them. I think it wouldn't be rude if you only went after the winners, or maybe if you are friends with any of them ask them if they mind.

    • @Errichto
      @Errichto  4 роки тому +1

      They don't often submit incorrect ideas ;p strong participants have good intuition and they can prove their solution. It would be much easier to look through their wrong submissions though, but maybe I will just discuss my own mistakes?

    • @CarrotCakeMake
      @CarrotCakeMake 4 роки тому +1

      @@Errichto We don't make mistakes, we just have happy accidents!

  • @MrWolfgangWeiss
    @MrWolfgangWeiss 4 роки тому

    What software do you use to record yourself and screen on Ubuntu? Well done by the way.

  • @bhavanprajapati4773
    @bhavanprajapati4773 4 роки тому +1

    Please explain O(N) solution

  • @ranitganai2725
    @ranitganai2725 3 роки тому +3

    It's like watching sachin tendulkar doing batting or roger federrer playing tennis.Pure legend

  • @adityamondal1136
    @adityamondal1136 4 роки тому

    Sir I Would request you to post a solution for CodeForces Contest 615 Div.2 Problem 1
    I really loved the video

  • @subrintakarmakar5436
    @subrintakarmakar5436 3 роки тому

    Thanks this is faster than normal dp

  • @GDGET72
    @GDGET72 3 роки тому

    Hi @Errichto, I'm wondering how making change to parameter type: (string s) -> (const string& s) would let a for loop exit with early condition hence faster-than-linear runtime. @5:58. Do you mean such change is coming from the algorithmic change and changing the paramter type would only save CPU from using extra memory to take in s? or is there something special about how for loop treats a reference ? Thanks for your time in advance

  • @RAP4EVERMRC96
    @RAP4EVERMRC96 2 роки тому

    06:08 why does comparing by reference is faster than comparing two string variables?

  • @nikhilkumar-ot9rn
    @nikhilkumar-ot9rn 4 роки тому

    could u please once more explain that parity thing ..please!!!!!!!!!

  • @ivanleon6164
    @ivanleon6164 3 роки тому

    you are a hero!

  • @rkalyankumar
    @rkalyankumar Рік тому

    I still didn't understand parity and binary search based solution to this problem. Any good materials for this to read & analyse?

  • @ajeetworking
    @ajeetworking 4 роки тому

    I got the first for-loop...it takes every element and expands towards the right and left side to get the largest palindrome...but can anyone explain the purpose of the second for loop?.

  • @sivaan7056
    @sivaan7056 2 роки тому

    Never thought of binary search 🥺

  • @kashireddydurgadevi7998
    @kashireddydurgadevi7998 3 роки тому

    Helpful information thankyou

  • @surajbisa2941
    @surajbisa2941 4 роки тому

    thanks a lot your great work!

  • @mohitsingh7793
    @mohitsingh7793 Рік тому

    No need to write O(n2) code twice :
    Approach:
    Consider every index as a center/mid,expand around the center to find the pallindrome.Mark the empty spaces as '# or any special character.Basically it has done for the even length string.
    string longestPalindrome(string s) {
    int n=s.size();
    string res;
    res+='#';
    for(int i=0;i

  • @bharath4397
    @bharath4397 4 роки тому

    really good explaination

  • @pyak6761
    @pyak6761 3 роки тому +2

    lol i come after struggling like hell: "quite an easy problem" me: ded. "...if you have competitive programming experience", me: oh phew, nope just a job that has nothing to do with LC.

  • @mathiaspresthagen4921
    @mathiaspresthagen4921 4 роки тому

    I am currently through to the national finals of the informatics olympiad, but I'm not sure how to practice for it. Any tips or ideas?

  • @faiz697
    @faiz697 4 роки тому

    I'm doing this problem for the last 20 mins, and it seems that the test case no 26('abb') is giving me the wrong result. When I checked it by inputting the input in the test case, it's giving me the correct answer. Anyone can explain to me why is it happening?

  • @clivefernandes5435
    @clivefernandes5435 4 роки тому

    Hey can u suggest a book for solving problems using methods like the monarch think u talked abt

  • @vishalyadav7245
    @vishalyadav7245 4 роки тому

    Great tutorial

  • @shashankmishra9238
    @shashankmishra9238 4 роки тому

    I thought you will solve by manacher's algorithm

  • @prabhudeengautam1845
    @prabhudeengautam1845 4 роки тому

    nice explanation!

  • @setukumarbasak6729
    @setukumarbasak6729 4 роки тому

    Can anyone explain in details about the parity logic?

  • @rasecbadguy5600
    @rasecbadguy5600 4 роки тому

    How to solve this problem using suffix array?

  • @nikhilrana8800
    @nikhilrana8800 3 роки тому

    Can anyone please explain why we add 1 in the mid-x+1? I am not able to figure it out.

  • @MojahooProducer
    @MojahooProducer 4 роки тому +1

    We love youuuuu

  • @cluutech8363
    @cluutech8363 3 роки тому

    @8:20 Binary search explanation

  • @yuvarajanm2059
    @yuvarajanm2059 3 роки тому

    Can anyone tell in the binary search method why we change the low and high value if it is not match with parity and we also increase the mid value if it is not match with parity instead of that can we only modify the mid value if it is not match with the parity..
    Please correct me if i am wrong.

  • @abhishekk.3977
    @abhishekk.3977 4 роки тому

    It's 02:33 AM and holy Jesus why tf I couldn't get past the first approach. ^_^

  • @hussainrizvi1887
    @hussainrizvi1887 3 роки тому

    Can someone explain the const string& trick to me again? Isn't the reverse() still O(N)?

  • @ritik84629
    @ritik84629 4 роки тому

    What does the parity means in this video?

  • @gitlit5489
    @gitlit5489 4 роки тому

    Can u do The Skyline Problem it may be easy for you because you are the Godfather of Computational Geometry but it freaks me out xd

  • @ankitrookies2357
    @ankitrookies2357 3 роки тому

    nice explanation

  • @sagarnikam6059
    @sagarnikam6059 4 роки тому

    In contests like codejam and kickstart how often we need to check our program by writing brute force solution and finding cases where our optimal solution is giving WA...
    Have you used this method of checking programs in short contests also..

    • @Errichto
      @Errichto  4 роки тому

      Codejam and Kickstart have feedback for small constraints so it isn't that important. Maybe useful if you want to find that countertest.

  • @anonymoussloth6687
    @anonymoussloth6687 3 роки тому

    can someone explain the n2logn solution in detail. How is Binary search used here?

  • @justinUoL
    @justinUoL 3 роки тому

    the appropriate playpack speed is advised to be 0.5

  • @sairohit8201
    @sairohit8201 3 роки тому

    guys , what does this mean i'm seeing this for the first time
    for(int parity: {0,1} )
    {
    }
    is this a cpp thing?

  • @sshdvac3372
    @sshdvac3372 3 роки тому

    I don't get why binary search works. Data is not sorted. Wtf

  • @RG-sl6ix
    @RG-sl6ix 4 роки тому

    Is there any algorithm, that could be a efficient replacement for Longest Common Substring with k-mismatches