L18. Implement LRU Cache

  Рет қаралды 84,401

take U forward

take U forward

Күн бұрын

Пікірлер: 110
@HMBDM1976
@HMBDM1976 6 ай бұрын
Hi Striver, I just wanted to thank you for your incredible DSA tutorials. Your clear explanations and thorough examples have made a huge difference in my understanding and proficiency. Thanks to your videos, I've become very proficient in DSA, which has significantly boosted my confidence and performance in my coding Keep up the great work, you're making a big difference!
@abhimanyus8757
@abhimanyus8757 5 ай бұрын
how it, am started today, did u make notes?
@omkarshendge5438
@omkarshendge5438 5 ай бұрын
@@abhimanyus8757 notes is compulsory
@harshitaninama5235
@harshitaninama5235 6 ай бұрын
Finally the stack playlist is here!!! thankyou so much!
@yashsharma6108
@yashsharma6108 6 ай бұрын
You are such a hardworking fellow .... seriously you inspire me everyday to work even harder to make myself better day by day...thanku striver😊
@DevilJim-p1s
@DevilJim-p1s 4 ай бұрын
Bro I'm just looking for a review I've just started are you good enough now at the end?
@CodewithKing360
@CodewithKing360 2 ай бұрын
Bhai kitna din lagega is karne me
@karthik-varma-1579
@karthik-varma-1579 4 ай бұрын
I Have Learned this Technique in my Operating Systems Subject in Page Replacement Algorithms using Stack And Now I am in My 3-1 Semester Again visiting to the LRU cache in Data Structures seems the main use of it and Striver Has Very Well Explained it. And Now I am able to Do My own for LFU Cache. Thank God!!!
@akesh500
@akesh500 5 ай бұрын
Please consider doing a series on Strings.
@_ankit_gupta_
@_ankit_gupta_ 6 ай бұрын
just going to start older stack playlist but got new playlist thanks you striver !!!
@agrawalmitesh4395
@agrawalmitesh4395 6 ай бұрын
Gem , just saw your explanation of first 13 min how to do it , and was able to implement it myself , in very less time
@THOSHI-cn6hg
@THOSHI-cn6hg 2 ай бұрын
he has started taking yt channel for granted
@prithvirathore7436
@prithvirathore7436 5 ай бұрын
Hello ,Raj sir I hope this comment finds you well,as String is the most important topic in the dsa when it comes to placements,so it's a humble request from you to please make videos on strings .as my placements are going on and arrays and strings are much asked questions
@aryanbundela6031
@aryanbundela6031 6 ай бұрын
My goat grinding hard at night
@user2k56
@user2k56 3 ай бұрын
@takeUforward We need a string series brother plz , as soon as possible.#A2Z DSA
@omkarshendge5438
@omkarshendge5438 5 ай бұрын
currafterhead→prev = node; this step is missing in the insertafterhead function
@AbhinavMohanParaverse
@AbhinavMohanParaverse 3 ай бұрын
Wanted to make a comment to point this out, but you got it!
@Sumantashee-e3w
@Sumantashee-e3w 5 ай бұрын
Sir you are a good teacher in DSA.... I'm injoy this playlist full stack playlist please 🙏🙏
@mohammedrayan2192
@mohammedrayan2192 6 ай бұрын
Hello raj bhaiya. Thank very much for taking your valuable and effort to teach DSA. Please create a video on Java Collection Frameworks.
@abhiroopmokshagnabheemineni
@abhiroopmokshagnabheemineni 3 ай бұрын
Such a beautiful explanation!! Kudos!
@HEMANTPORWAL-t7d
@HEMANTPORWAL-t7d 6 ай бұрын
thank you striver for all these interesting stuffs
@swathigp3818
@swathigp3818 12 күн бұрын
Incredible explanation
@kunal5077
@kunal5077 3 ай бұрын
Very Nice explanation. Eagerly waiting for strings playlist
@swaroopparida0429
@swaroopparida0429 6 ай бұрын
Hi striver please bring playlist on string
@ishan9604
@ishan9604 6 ай бұрын
Thank You Striver , you really help me in trees and graph series!
@FarziWada-q3r
@FarziWada-q3r Ай бұрын
The last video of a2z sheet was added 4 months ago. When will the next videos be uploaded?
@ShivamGupta-ei2sv
@ShivamGupta-ei2sv 2 ай бұрын
Bhaiyya I am eagerly waiting for string playlist
@umeshkaushik710
@umeshkaushik710 4 ай бұрын
Hi Bhaiya, Please complete Strings list from the sheet, and I think Strings question might need some more addition. When we can except String Playlist out ?
@harigs72
@harigs72 2 ай бұрын
Oh my goodness! I found the optimal solution of it by myself. I have just come here to see the most optimal solution of it..😅
@HemangSinghal-op5ep
@HemangSinghal-op5ep 5 ай бұрын
Wonderful Explanation
@madhupathak7772
@madhupathak7772 6 ай бұрын
Hello sir!! Please upload the heaps playlist asap
@updownftw
@updownftw Ай бұрын
Why is this in the Stack and queue playlist ?
@KeigoEdits
@KeigoEdits 6 ай бұрын
I respect you a lot striver literally but please take this suggestion into consideration, dont make videos for the topics you already made earlier We are eagerly waiting for strings series and recursion series
@Jai_Shri_Krishna_Shri_radhe
@Jai_Shri_Krishna_Shri_radhe 6 ай бұрын
If you Reached 13:35 skip to 20:45 Again restarted writing pseudocode
@akhilesh_ku
@akhilesh_ku 6 ай бұрын
No , firstly he just wrote pseudo code , for second time it's cpp code😅😂
@omkarshendge5438
@omkarshendge5438 5 ай бұрын
yup exactly
@omkarshendge5438
@omkarshendge5438 5 ай бұрын
@@akhilesh_ku the first time also it is cpp heavy only bro.
@AbhijeetChouhanXD
@AbhijeetChouhanXD 3 ай бұрын
strings ke videos le aao bhai
@Hy_there01
@Hy_there01 4 ай бұрын
This video lasts longer than my relationship 😂
@souvikbasak4396
@souvikbasak4396 6 ай бұрын
Bhaiya could you tell beforehand if you going upload any chapter(specsilly graph and dp) playlist which is already available in older playlist , so that instead of the older playlist I could wait a few more days for the newer playlist , like are you going to upload new playlist of graphs and dp , else i will continue with the older one only.
@arunbhagat8023
@arunbhagat8023 Ай бұрын
Sir String and Heap Playlist Please....!!!
@venumsingh
@venumsingh 6 ай бұрын
Thanks for the video. Which software is used for recording the video?
@AneeshPal-t7y
@AneeshPal-t7y 2 ай бұрын
I m just not able to get that when we change order of elements so that it becomes the most recently used , why we are not changing the reference i.e. new location in map as now nodes location is changed....
@karthi2174
@karthi2174 Ай бұрын
Hello everyone, my placements are starting in March 2025. I have started learning DSA using the TakeUforward SDE sheet and have completed the first 10 problems. However, I was able to understand only 3 of them, and I am struggling to build logic on my own. I am unsure if I am on the right track or where to start. Could you please give me some advice on how to approach solving problems independently and where I should begin? I have programming knowledge but need guidance. I am not aiming to join a big MNC company, but I want to prepare effectively.
@AbhinavTries
@AbhinavTries Ай бұрын
youre doing just fine bro, you've just started, i've been there, im done with 50% of the sheet yet I struggle with intuition, dont worry just keep practicing comment your own notes in the code, it'll help in revising also whenever you approach a new approach, write it down somewhere
@FarziWada-q3r
@FarziWada-q3r Ай бұрын
When will be the next video uploaded?
@atulwadhwa192
@atulwadhwa192 3 ай бұрын
Will there be any difference if we delete from front and insert at the back? In terms of complexity?
@ShubhamKumar-vk8me
@ShubhamKumar-vk8me 5 ай бұрын
Bhaiya String ka video kab tak aajaye, You said you will be uploding it before september
@Panther_jf
@Panther_jf 6 ай бұрын
Bhaiya, would love to learn Binary Trees next, pls❤ And the stack playlist was amazing as always😍
@KeigoEdits
@KeigoEdits 6 ай бұрын
Binary trees playlist is already completed, go check out
@Panther_jf
@Panther_jf 5 ай бұрын
@@KeigoEdits I was talking about the new version of binary trees playlist
@curs3m4rk
@curs3m4rk 4 ай бұрын
I was able to implement after watching approach of DLL and HashMap, Got stuck at the place where I was able to delete LRU from DLL, but could not find out how to remove that node from hashmap. Storing key, value pair in DLL Node is a great idea. Thanks :)
@ParthDabhiOfficial
@ParthDabhiOfficial Ай бұрын
UNDERSTOOD, Radha Radha
@prashlovessamosa
@prashlovessamosa 6 ай бұрын
Sir can you please add the solutions in python too I have to visit the third party website to read the code. Very grateful to you for the series.
@theultimatespo...4205
@theultimatespo...4205 20 күн бұрын
Can it be done by using dequeue
@shresthgupta2670
@shresthgupta2670 6 ай бұрын
legend is here
@arl0817osho
@arl0817osho 5 ай бұрын
does it should be afterhead->prev = node in insert funciton also?
@rameezalipacific
@rameezalipacific 6 ай бұрын
I'm from Pakistan and currently pursuing a degree in software engineering. Alongside my studies, I'm dedicating significant time to mastering data structures and algorithms (DSA). However, I'm uncertain if excelling in DSA alone is enough to secure a job at top tech companies like the one you work for. Do I need to develop additional skills, such as web, app, or game development, to increase my chances of success? Also, could you share your experience on when you started focusing on DSA-was it during your degree or afterward?
@deveshagarwal660
@deveshagarwal660 5 ай бұрын
You mentioned that you will be using a DLL for solving this, but never explained that how did you come to a conclusion of using a DLL. It is also important to explain your choice of using any particular data structure or algorithm when someone is solving problems in an interview.
@AbhijeetChouhanXD
@AbhijeetChouhanXD 2 ай бұрын
Because we are (i) adding elements to front (ii) removing from the back and adding to front In say singly LL, to remove the last element, we would have to travel the list taking O(n) time. Similarly in something like an array, to add an element to the front we would have to shift all the elements, taking O(n) time.
@MO-fg2cm
@MO-fg2cm 2 ай бұрын
Lru in processors done in maps ?? No way , is this some dsa course then ?
@THOSHI-cn6hg
@THOSHI-cn6hg 3 ай бұрын
upload next series cmmon bro
@DrawwithNavi
@DrawwithNavi 6 ай бұрын
cant we just do the same thing using orderedDict, will take similar time and much shorter
@abhishekagrawal3730
@abhishekagrawal3730 5 ай бұрын
Bhaiya please string dal do
@astitvashukla6556
@astitvashukla6556 6 ай бұрын
Bhaiya I am following your DSA series ek baar Java collection kie video daal dijiye bahut help ho jaaegi and bhaiya meine kaafi se question practice kre solve kre but confidence and logic dono build nhi ho paa rha... Need some guidance
@sanchitkaul5084
@sanchitkaul5084 8 күн бұрын
Rather than "DeleteNode" a better name of the function would be "DetachNode" .
@Leo-id4uh
@Leo-id4uh 6 ай бұрын
code 360 not showing some of the code in the solved list which i was done before, can anyone tell about this
@KedarBhawthankar
@KedarBhawthankar 5 ай бұрын
striver is legend
@soumyadey4500
@soumyadey4500 4 ай бұрын
can anyone help why should i use "m[key_] = head->next" under get function?
@SanketPatil-gm7pb
@SanketPatil-gm7pb 6 ай бұрын
sir plz upload the next playlist of heap
@yogeshwardayalagarwal4228
@yogeshwardayalagarwal4228 6 ай бұрын
Why is it not a part of linked list playlist?
@akhilesh_ku
@akhilesh_ku 6 ай бұрын
It uses put and get
@odorlessflavorless
@odorlessflavorless 4 ай бұрын
~ 17:54 'we have touched someone, ... least recently used' --- we have to put in front because it is the most recently used and not the least recently used.
@adhiraj2964
@adhiraj2964 3 ай бұрын
Striver bhaiya next topic string cover kariye pleaseee
@NirajPatel-ug2ew
@NirajPatel-ug2ew 3 ай бұрын
my code: struct Node { int val; int key; struct Node* next; struct Node* prev; Node(int value, int x) { val = value; key = x; next = NULL; prev = NULL; } }; class LRUCache { public: unordered_map m; int size, currsize; struct Node* head; struct Node* tail; LRUCache(int capacity) { size = capacity; head = NULL; tail = NULL; currsize = 0; } int get(int key) { if (m[key] == NULL) return -1; struct Node* temp = m[key]; if (temp == head) { return temp->val; } if(temp == tail){ tail = temp->prev; } temp->prev->next = temp->next; if (temp->next != NULL) { temp->next->prev = temp->prev; } temp->next = head; head->prev = temp; head = temp; return head->val; } void put(int key, int value) { if (m[key] == NULL) { if (currsize < size) { struct Node *temp = new Node(value, key); m[key] = temp; currsize ++; if(head == NULL){ tail = temp; head = temp; return; } temp->next = head; head->prev = temp; head = temp; return ; } else { struct Node *temp = new Node(value, key); m[tail->key] = NULL; if(head == tail){ tail = temp; head = temp; m[key] = head; return ; } tail = tail->prev; temp->next = head; head->prev = temp; head = temp; head->val = value; m[key] = head; return ; } } else { struct Node* temp = m[key]; if (temp == head) { temp->val = value; return; } if(temp == tail){ tail = temp->prev; } temp->prev->next = temp->next; if (temp->next != NULL) { temp->next->prev = temp->prev; } temp->next = head; head->prev = temp; temp->val = value; head = temp; return ; } return ; } }; /** * Your LRUCache object will be instantiated and called as such: * LRUCache* obj = new LRUCache(capacity); * int param_1 = obj->get(key); * obj->put(key,value); */
@GuptaHarshHemant
@GuptaHarshHemant 6 ай бұрын
thanks striver
@SoRandominfo
@SoRandominfo 6 ай бұрын
U missed LFU cache video?
@brokegod5871
@brokegod5871 6 ай бұрын
He solved it before in an older video, you can see in the playlist
@akhilesh_ku
@akhilesh_ku 6 ай бұрын
See down 😅 , KZbin suggesting you
@maverick_8707
@maverick_8707 5 ай бұрын
He has included in the playlist at last
@kanishasiva6731
@kanishasiva6731 6 ай бұрын
Striver 💯🙏💗
@iamnottech8918
@iamnottech8918 6 ай бұрын
mojj krdi bhaiya
@DeadPoolx1712
@DeadPoolx1712 3 ай бұрын
UNDERSTOOD;
@atulwadhwa192
@atulwadhwa192 2 ай бұрын
My approach using dummy node class Node{ public: int key,val; Node* next; Node* prev; Node(int key,int val){ this->key = key; this->val = val; next = NULL; prev = NULL; } }; class LRUCache { int size,capacity; Node* head; Node* tail; unordered_map mp; public: LRUCache(int capacity) { size =0; this->capacity = capacity; head = new Node(-1,-1); tail = new Node(-1,-1); head->next = tail; tail->prev = head; } void insertNodeAtEnd(Node* node){ // detachment of node Node* prevNode = node->prev; Node* nextNode = node->next; if(prevNode != NULL) prevNode->next = nextNode; // for new node prevNode would be null if(nextNode != NULL) nextNode->prev = prevNode; // for new node nextNode would be null // attachment of node at end Node* tailPrev = tail->prev; tailPrev->next = node; node->prev = tailPrev; node->next = tail; tail->prev = node; } int get(int key) { uj7i8if(mp.find(key) == mp.end()) return -1; Node* node = mp[key]; insertNodeAtEnd(node); return node->val; } void put(int key, int value) { if(mp.find(key)!=mp.end()){ Node* node = mp[key]; node->val = value; insertNodeAtEnd(node); } else{ Node* node = NULL; if(size == capacity){ node = head->next; mp.erase(node->key); node->key = key; node->val = value; // insertNodeAtEnd(node); } else{ size++; node = new Node(key,value); // insertNodeAtEnd(node); } insertNodeAtEnd(node); mp[key] = node; } } }; /** * Your LRUCache object will be instantiated and called as such: * LRUCache* obj = new LRUCache(capacity); * int param_1 = obj->get(key); * obj->put(key,value); */
@abhinavabhi3568
@abhinavabhi3568 29 күн бұрын
Understood
@AbhishekKumar-td5zu
@AbhishekKumar-td5zu 22 күн бұрын
understood!!
@mayanksaini4827
@mayanksaini4827 6 ай бұрын
kya haal h striver bhai k👀👀 ?
@Aman-Gairola
@Aman-Gairola 5 ай бұрын
he forgot change afterhead->prev = node in insert funciton
@sanchitdeepsingh9663
@sanchitdeepsingh9663 6 ай бұрын
thanks sir
@shantipriya370
@shantipriya370 6 ай бұрын
can you pls give python code link..
@ahmadrasheed2598
@ahmadrasheed2598 Ай бұрын
C++ Implentation: class Node { public: int key; int val; Node* prev; Node* next; Node(int key, int val) : key(key), val(val), prev(nullptr), next(nullptr) {} }; class LRUCache { private: void deleteNode(Node* node){ if (node == nullptr) { return; } node->prev->next = node->next; node->next->prev = node->prev; } void insertAtHead(Node* node){ if (node == nullptr) { return; } node->next = head->next; head->next = node; node->prev = head; node->next->prev = node; } Node* head = new Node(-1, -1); Node* tail = new Node(-1, -1); public: int capacity = 0; unordered_map mp; LRUCache(int capacity) { head->next = tail; tail->prev = head; this->capacity = capacity; mp.clear(); } int get(int key) { if(mp.find(key) != mp.end()){ // key exists Node* node = mp[key]; deleteNode(node); insertAtHead(node); return node->val; } else{ // key doesnt exist return -1; } } void put(int key, int value) { if(mp.find(key) != mp.end()){ // key exists update Node* node = mp[key]; node->val = value; deleteNode(node); insertAtHead(node); } else{ Node* node = new Node(key, value); // key doesnt exist add if(mp.size() == capacity){ //remove least recent Node* lru = tail->prev; deleteNode(lru); mp.erase(lru->key); insertAtHead(node); mp[key] = head -> next; } else{ //add insertAtHead(node); mp[key] = head -> next; } } } };
@FreeFire-f7e
@FreeFire-f7e 6 ай бұрын
Hello sir I will go in IIT ropar what language which I do start?
@siddhukanchumarthi961
@siddhukanchumarthi961 6 ай бұрын
start with c and continue with c++
@SwastikMohanty-rq6qn
@SwastikMohanty-rq6qn 6 ай бұрын
start with c++ itself
@sarveshkanwar1300
@sarveshkanwar1300 6 ай бұрын
cpp
@Akshay-c8g
@Akshay-c8g 6 ай бұрын
Hindi
@FreeFire-f7e
@FreeFire-f7e 6 ай бұрын
@@Akshay-c8g I am not understand what do you tell
@user-zp1dv4yh5e
@user-zp1dv4yh5e 4 ай бұрын
Here, you didn't handle the case where the key could be same be value might be different.
@impatientgaming9868
@impatientgaming9868 28 күн бұрын
niceee
@UttamSingh-vn1yf
@UttamSingh-vn1yf 3 ай бұрын
string krwado
@vineet1728
@vineet1728 6 ай бұрын
The editor forgot something to clip
@sandeepxt99
@sandeepxt99 6 ай бұрын
@SajanKumar-ec2us
@SajanKumar-ec2us 5 ай бұрын
please explain c++ written don't write suedo code
@studystuff51
@studystuff51 5 ай бұрын
Please learn how to write code by yourself instead
@razorzeast4133
@razorzeast4133 6 ай бұрын
I'm the first one
@nikhil_squats
@nikhil_squats 5 ай бұрын
curr_after_head->prev=node; in addAfterHead Func
@chiragdusad2015
@chiragdusad2015 5 ай бұрын
Stiver where are your hairs going😢 Looks like our brother is getting older
@ishan9604
@ishan9604 6 ай бұрын
First Comment
Implement LFU cache in C++/Java  | Leetcode(Hard)
17:44
take U forward
Рет қаралды 78 М.
L17. The Celebrity Problem | Stack and Queue Playlist
16:17
take U forward
Рет қаралды 40 М.
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН
Mom Hack for Cooking Solo with a Little One! 🍳👶
00:15
5-Minute Crafts HOUSE
Рет қаралды 23 МЛН
Top-10 GNOME Apps for Android ~now that GTK 😊😊
5:30
Mii beta
Рет қаралды 1,7 М.
Premature Optimization
12:39
CodeAesthetic
Рет қаралды 852 М.
I made Tetris in C, this is what I learned
15:15
Austin Larsen
Рет қаралды 30 М.
Every Minute One Person Is Eliminated
34:46
MrBeast
Рет қаралды 31 МЛН
LRU Cache - Twitch Interview Question - Leetcode 146
17:49
NeetCode
Рет қаралды 324 М.
What P vs NP is actually about
17:58
Polylog
Рет қаралды 147 М.
人是不能做到吗?#火影忍者 #家人  #佐助
00:20
火影忍者一家
Рет қаралды 20 МЛН