One practical implementation of this is in consistent hashing algorithm. To find the server where the data resides. We can maintain a balanced BST of the hash(IP) for all nodes .. when a key is to be stored or retrieved, the key is also hashed and the successor of this hash(key) is searched in this balanced BST.
The best playlist on TREE. better version of code int findCeil(BinaryTreeNode *node, int x){ int ceil = -1; BinaryTreeNode *curr = node; while(curr!= NULL){ if(curr->data >= x){ ceil = curr->data; if(ceil == x){ break; } curr = curr->left; } else{ curr = curr->right; } } return ceil; }
@takeUforward3 жыл бұрын
Please likeeee, shareeee and subscribeeeeeeee :) Also follow me at Insta: Striver_79
@stith_pragya Жыл бұрын
Thank You So Much for this wonderful video.............🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻
@akashpurbia439010 ай бұрын
Recursive Solution: // Function to return the ceil of given number in BST. int Ceil=-1; //Global Variable int findCeil(Node* root, int input) { if (root == NULL) return Ceil; // Your code here if(root->data==input) { Ceil = root->data; return Ceil; //if input is found then ceil will be that only } if(root->data>input) { Ceil = root->data; //update the ceil(immediately greater than input) } if(inputdata) return findCeil(root->left,input); else return findCeil(root->right,input); }
@tharungr77014 ай бұрын
int ceilAns = -1; BinaryTreeNode* curr = node; while(curr) { if(curr->data >= x) { ceilAns = curr->data; curr= curr->left; } else{ curr= curr->right; } } return ceilAns; simple as that
@ajayagrawal20679 ай бұрын
Using a while loop will be a good answer, because if we use recursion that is adding some extra space which the interviewer might not like.
@priyanshkumar178 ай бұрын
Yeah!! You're right
@brokegod58714 ай бұрын
Here's the recursive solution, there's no issue of extra spaces though? void solve(Node* root, int input, int &ans) { if(root==NULL) return; if(root->data == input) { ans = root->data; return; } if(input > root->data) { solve(root->right, input, ans); } else { ans = root->data; solve(root->left, input, ans); } } int findCeil(Node* root, int input) { int ans = -1; solve(root, input, ans); return ans; }
Thankyou very much sir, for all of these videos, I'm really grateful for them. I'll surely crack google just like you did.
@DeadPoolx171216 сағат бұрын
UNDERSTOOD;
@UECAshutoshKumar Жыл бұрын
Thank you sir
@shipranshikeshri9210 Жыл бұрын
int findCeil(Node* root, int input) { if (root == NULL) return -1; int ans = INT_MAX; while(root != NULL ){ if(root->data >=input){ ans = min(ans,root->data); root = root->left; } else{ root = root->right; } // cout
@apmotivationakashparmar722Ай бұрын
Thank you so much !
@paraskamboj10394 ай бұрын
thankyou so much sir ji
@kanishkkala168 ай бұрын
guys isnt this the floor of the bst problem, val >= k is used for the floor right, i have seen his whole binary search playlist, even in that finding floor is done using arr[mid] >= k right
@striverdaaadi11 ай бұрын
awesome videos bhaijaan😍😍
@KartikeyTT3 ай бұрын
tysm sir
@himanshidafouty3474 ай бұрын
Understood
@GeneralistDev Жыл бұрын
SelfNote:- Solved myself
@akhilesh593 жыл бұрын
Understood...
@jatilyadav40002 жыл бұрын
Definately Yess...
@codeman38287 ай бұрын
Thanks. Understood
@alesblaze47452 жыл бұрын
thanks mate!
@brokegod58714 ай бұрын
Recursive Solutions: *Ceil in BST* void solve(Node* root, int input, int &ans) { if(root==NULL) return; if(root->data == input) { ans = root->data; return; } if(input > root->data) { solve(root->right, input, ans); } else { ans = root->data; solve(root->left, input, ans); } } int findCeil(Node* root, int input) { int ans = -1; solve(root, input, ans); return ans; } *Floor in BST* void solve(Node* root, int input, int &ans) { if(root==NULL) return; if(root->data == input) { ans = root->data; return; } if(input < root->data) { solve(root->left, input, ans); } else { ans = root->data; solve(root->right, input, ans); } } int floor(Node* root, int x) { int ans = -1; solve(root, x, ans); return ans; }
@harshitjaiswal94399 ай бұрын
understood.
@chiragbansod82528 ай бұрын
understood
@PrinceKumar-el7ob3 жыл бұрын
exactly similar to finding ceil in sorted order!
@rpspsprp2 жыл бұрын
Ye question leet code per nii hai sayad
@jambajuice07 Жыл бұрын
you are doing extremely very well striver
@sujan_kumar_mitra3 жыл бұрын
Understood
@mohdhammadsiddiqui75982 жыл бұрын
In coding ninjas i think sample input for X=7 is given wrong ceil should be 7 not 8
@tusharnain66522 жыл бұрын
Coding Ninjas Sucks!
@studyaccount7942 жыл бұрын
@@tusharnain6652 Yeah, it's like that pirated game you download from pirate bay lol. Highly compressed 1mb leetcode 100% working, no virus.
@tusharnain66522 жыл бұрын
@@studyaccount794 LOL, those highly compressed games took forever to install
@tusharnain66522 жыл бұрын
@Ayush Negi yes!
@harshalgarg11493 жыл бұрын
Thanks.
@rishabhkumar81153 жыл бұрын
NIce!!!
@letscodewithshivam2 жыл бұрын
This is similar to finding successor in BST for a key.. right ?
@parthsalat2 жыл бұрын
Yes, check it on interviewbit
@tps84704 ай бұрын
Done
@Ani-zi5he6 ай бұрын
"Understood"
@shivangisrivastava11582 жыл бұрын
smooth!
@sangammishra36702 жыл бұрын
i think in the above example if you have 7 in the left of 9 then in that case it will return value 7
@harshjha16262 жыл бұрын
No, it will return 9 only
@shivamtharwani4057 Жыл бұрын
in that case it returns 10 as of eg.
@umarqureshi84993 жыл бұрын
Amazing.
@mayankraj5273 жыл бұрын
Nice explanation
@pratapsingh9638 Жыл бұрын
understood
@prathameshpawar3463 жыл бұрын
nicely done
@abhishek__anand__ Жыл бұрын
Nice
@lavanyaprakashjampana9332 жыл бұрын
we love your content and we love you...🖤
@pratapsingh9638 Жыл бұрын
@striver bhai please make videos on bit manipulation and segment tree
@chirlasowmyareddy Жыл бұрын
this is raj sir's video.. hope this is helpful.. www.youtube.com/@CodeBeyond/playlists?view=50&shelf_id=2
@t-anime517 Жыл бұрын
Understood 😊
@ashwinrai1232 жыл бұрын
Amazing....
@nileshsinha78693 жыл бұрын
UNDERSTOOD
@b_31mahammadzubair812 жыл бұрын
In the BST shown in question what if 7 is there instead of 9. What will it return??
@chiragkhemani16152 жыл бұрын
If there would have been 7 , we have not taken that and moved to right that is NULL and return stored ans that is 10 (ceil of this tree when key = 8)
@bilalkhan2298 Жыл бұрын
dhoni❤
@abhimanyuthapliyal58233 ай бұрын
US
@Ayush-lq3fz3 жыл бұрын
understood :)))))
@p38_amankuldeep752 жыл бұрын
💝💝💝
@ajayypalsingh2 жыл бұрын
💚
@shubamgoswami3 жыл бұрын
done completed
@Kpriyasing3 жыл бұрын
Amazing content!
@TheDev05 Жыл бұрын
@@parthgupta0824 are you a boy or girl?
@Telugu_europe2 жыл бұрын
US
@jambajuice07 Жыл бұрын
void help(Node* root , int target , int &ans){ if(root== NULL) return ; if(root->data== target){ ans = target; return ; } else if(root->data > target){ ans = min(ans , root->data); help(root->left , target,ans); }else{ help(root->right, target,ans); } } int findCeil(Node* root, int input) { if (root == NULL) return -1; int ans =1e9; help(root, input , ans); if(ans==1e9) return -1; }
@piyushacharya76962 жыл бұрын
reach++
@HarryThakur-f6u4 ай бұрын
hey everyone? can someone please tell me which question number is this on leetcode!
@shibasishdas41079 ай бұрын
Can there be a better version of this code in recurssive solution: private TreeNode ceil(TreeNode root, int val) { if(root == null) return null; if(root.val == val) return root; if(val < root.val) { TreeNode left = ceil(root.left, val); return (left == null) ? root : left; } else { TreeNode right = ceil(root.right, val); return (right == null) ? null : right; } }