I have coded for 8+ years now and I still like watching these videos
@RN-jo8zt Жыл бұрын
me too ,because we don't do this stuff in our daily work
@saranshthukral40213 ай бұрын
goat
@YT.Nikolay2 жыл бұрын
I am super happy I solved myself, and did it slightly differently. Basically, I count opened and closed, and when closed > opened, I do a swap AND decrease closed AND increase opened counters. Accepted! =) def minSwaps(self, s: str) -> int: opened, closed = 0, 0 swaps = 0 for bracket in s: if bracket == '[': opened += 1 else: closed += 1 if closed > opened: swaps += 1 opened += 1 closed -= 1 return swaps
@SkyeTian2 жыл бұрын
Thank you!
@de-grafthazard9081 Жыл бұрын
Brilliant
@ibragim1989 Жыл бұрын
To be honest your explanation even more intuitive. Thanks!
@scoobyy31123 ай бұрын
This is such a good solution
@mkycto3 ай бұрын
I thought about that approach, but i cant't physically explain on case with s = "]]][[["
@frida8519 Жыл бұрын
I just did this: class Solution: def minSwaps(self, s: str) -> int: flips, cSum = 0, 0; for b in s: if b == '[': cSum += 1; else: cSum -= 1; if cSum < 0: flips += 1; cSum = 1; return flips; Basically, if we ever have a negative sum, it means we have more closed brackets than we do open, so we have to make a swap and turn the ] into [, which means the current sum will be 1 again.
@nitiketshinde14589 ай бұрын
even I went with same way initially, just the thing is that it goes few ms slower than the another way which is given in video.
@user-fp4dr1ne7z2 жыл бұрын
A good question for a contest but a bad one for an interview. It such a difficult solution to come to on your own.
@Abhishek-xr1xw3 ай бұрын
I love the way he come up with the solution.
@IAmIndraTheGod2 ай бұрын
The simple intuitiion for this problem is that, 1. The number of open and closed brackets are same - given 2. They are just out of order, so we need to swap them - given 3. So how would you make it balanced, ? 4. It will become balanced once you swap the ones that are unbalanced. 5. So find out the brackets that are unbalanced, so we count closing brackets that dont have an associated open bracket. 6. We keep track of the maximum number of such closing brackets 7. since each swap would fix 2 of those closing brackets, we divide it by 2.
@杨熙-v6v9 ай бұрын
amazing!hope to solve neetcode all by following the series of video!
@shantanukumar40812 жыл бұрын
Great explanation 👍👍👍
@bthulasikrishna95973 ай бұрын
Why increment by one? If we have odd number of unmatched, then (unmatched+1)//2 alternative is math.ceil(unbalanced/2)
@adityaonytube98603 ай бұрын
works for even number of unmatched too right? like for eg. " ] ] [ [ " requries only 1 which is ((maxClose = 2) + 1)/2 ? Tho math.ceil works too
@AustinWeeks3 ай бұрын
This one took years off my life
@MANOJKUMAR-mb2uw2 жыл бұрын
Why only adding +1 to closing brackets why not vice versa i tried it but showing error
@jakjun40772 жыл бұрын
I am confusing why u did divide instead of minus since u said every swap remove 2. what I know so far is every swap will reduce by two because it will turn to be balanced and only left the unbalance one to swap/solve. For example, 3 -> 1 could be achieved by minus 2 why divide by two. i am stucking at there. pls help
@randomfool Жыл бұрын
its the same thing bro, 100/2 = 50 means for every operation 100 is reduced by 2 so there are 50 such operations
@ocoocososococosooooosoococoso Жыл бұрын
i think theres people who can come up like this solution. Even after i solved nearly 300 leetcode and watched most of the tutorial of the videos, i could only start to solve the problem with a brute force, cannot come up with the optimized solution ever 😮💨
@sankhadip_roy5 ай бұрын
What is your current status?
@shivangagrawal29232 жыл бұрын
Best Explanation so far
@sketchwithbratati43973 жыл бұрын
Amazing. I could have never thought of it... How to come up with approaches on our own?
@MGtvMusic3 жыл бұрын
Keep practising
@rounakbhatia1213 жыл бұрын
amazing explanation
@ashwinvarma93493 жыл бұрын
but why increment by 1?
@sanskartiwari24962 жыл бұрын
I think of it as (maxClose //2) + (maxClose%2)
@bthulasikrishna95973 ай бұрын
If we have odd number of unmatched, alternative is math.ceil(unbalanced/2)
@WebDevAnjali3 ай бұрын
I CAN NEVER THINK OF THIS SOLUTION EVEN WITHOUT THE ALGO ....I SPENT 2 HOURS BUT COULDN'T THINK OF RESOLVING ALL TEST CASE IT WILL GET STUCK IN ONE OR ANOTHER CASE ....
@shubhamdeshmukh92873 жыл бұрын
good work.
@Live-hh6li3 жыл бұрын
Best explanation
@akankshasharma74982 жыл бұрын
How did you come up with that? great solution 🤟
@aspiring_Sr.dev_Om4 ай бұрын
Spoiler @ 4:32 MaxSwaps
@johnj1716 ай бұрын
youu broo love you
@alisherkholmirzaev78853 жыл бұрын
do we really need maxClose in the code? It is always 0 and I think it's enough to do (close + 1 ) / 2.
@TechEats3 жыл бұрын
actually he did not explain need of maxClose. For test case ][][][, your logic will fail
@ronifintech94342 жыл бұрын
When you reach the end, close will be 0. So you need another variable
@shubhamdeshmukh92873 жыл бұрын
very nice.
@AymenDaoudi-u6h Жыл бұрын
It's wrong on many levels to ask such a question in an interview
@jacksonripper-mp8dr3 ай бұрын
Nobody cares about ur opinion....
@ketansharma6955 Жыл бұрын
its quite similar to Minimum Add to Make Parentheses Valid
@sainikhil9562 жыл бұрын
Thanks but can you please elaborate why did we use max variable ?
@rohitbk79202 жыл бұрын
to keep track of max of closecount at an instance
@chenyixiang24242 жыл бұрын
if we do not check the max variable, we may meet ]]][[[ and reach 0 in the end
@mdanishossain0262 жыл бұрын
class Solution: def minSwaps(self, s: str) -> int: stack = [] for ch in s: if ch == '[': stack.append(ch) elif stack: stack.pop() return (len(stack)+1)//2 #approach_2: class Solution: def minSwaps(self, s: str) -> int: size = 0 for char in s: if char == '[': size += 1 elif size != 0 : size -= 1 return (size+1)//2
@soumikghosh15223 жыл бұрын
Solve 0-1 knapsack, other tutorials on youtube are not that clear
@kritika_02043 жыл бұрын
watch aditya verma dp series
@aisharawat9102 Жыл бұрын
Mera dimaag kb chlega🥺🥺
@nmkcomps Жыл бұрын
What happens if I just take open brackets. Won’t your solution return 0
@ssenthilnathan33 жыл бұрын
I am afraid of Leetcode Weekly Contests because I don't know, I can solve it or not or maybe giveup in half-way. But I like the problems in leetcode and all other platforms. Don't judge me, I am an average human. Can anyone help me in this?
@ssenthilnathan33 жыл бұрын
@@BhanuTejaPogiri-rj3qp Thank you!
@WebDevAnjali3 ай бұрын
i used to think of myself as an average but since i've tried leetcode i come to know that i'm way below the bottom line 🙂i can't think of logics .... all the concepts of dp , recursive, tree or problems of knapsack or greedy approch i used to think of them in graphical way imagining in my head but during my academics i never even know those stuffs can be coded i hell have to idea how.... even being the easiest problem i get stuck quite often ....i wonder is it only me this stupid or there exists ppl ...i dont know how long will it take me to grab the problem solving flow or from where to begin with😭😭😭
@sabukunaАй бұрын
annoying problem
@apoorvakumar24103 жыл бұрын
this code doesn't work for multiple testcases
@NeetCode3 жыл бұрын
sorry, you must have made a mistake. this exact code worked for me.
@ytsh57522 жыл бұрын
noice
@eddiej2042 жыл бұрын
@ameynaik27433 жыл бұрын
Nice solution, can you please do video on 1055. Shortest Way to Form String from leetcode, I think there are multiple solutions possible for it.