Master Data Structures & Algorithms For FREE at AlgoMap.io!
@justinpardo-mw8wy5 ай бұрын
this was so good i tried looking at other explanations but it felt like it went against my intuition for solving the problem this was perfect
@GregHogg5 ай бұрын
Really happy you enjoyed it!
@hinocenciopaulo6 ай бұрын
That was a beautiful approach, so precise and simple. Excellent job sir. Thank you for sharing.
@GregHogg6 ай бұрын
Very glad you enjoyed it!
@DeepakGupta-zz1vf10 ай бұрын
All sorted rotated arrays have one thing in common that is there will be atleast one sorted half for sure This can be proved by taking 5 elements and all its possible rotations and then see how left,mid and right varies Post that we will come to the above mentioned conclusion Now using this technique one can easily solve any variant problem related to sorted rotated array
@donghyunsuh44693 ай бұрын
I think the explanation was very intuitive. Thank you!
@JoeTan-nq4fq2 ай бұрын
A sllightly faster way (but longer code) - Each time after finding nums[m], check its neighbour. If the value to the right is lower, it means it is the first element of the original array. If the value to the left is higher, it means it is the last element of the original array. If both of these conditions are not met, narrow the search by half. l, r = 0, len(nums) - 1 while l < r: mid = (l + r) // 2 # Since original array is ascending, # a lower right value means it is the first element if nums[mid+1] < nums[mid]: return nums[mid+1] # a higher left value means it is the last element elif nums[mid-1] > nums[mid]: return nums[mid] # Narrow the search by half if nums[mid] > nums[r]: l = mid + 1 else: r = mid - 1 return nums[l] # To handle single element array
@md-ayaz3 ай бұрын
simple and neat solution. Thank you.
@enryost1059Ай бұрын
you're the goat, thank you for this video!
@devpragmatico5 ай бұрын
Very good explanation. Thank you
@nav2135 ай бұрын
First of all thank you so much for the videos! I am a big fan. Secondly, it's one of those questions that you need to memorize because I couldn't get it when I tried to do it by myself.
@GregHogg5 ай бұрын
That's so sweet! And yeah this one is definitely tricky lol
@skyaqa210810 ай бұрын
Hi there, in one of your videos you mentioned the order of types of ds we should follow and solve because they are prerequisite for others, why you don't do the same, for example start with 5 problem from the first one to ... 5 problem of last one(dyn programming was the last one, i remember), and in the end of solving each problem recommend 5 similar important problems for practice It would be really helpful if you do that instead of just randomly solving problem, inform us about what you think about this idea Thanks
@sumanthreddykarri3 ай бұрын
class Solution(object): def findMin(self, nums): if nums: nums.sort() else: return False return nums[0] nums = [4,5,6,7,0,1,2] solution=Solution() print(solution.findMin(nums))
@giancarlokuosmanen97232 ай бұрын
You are defeating the purpose of the task by sorting it It is a binary search problem.
@anirbandas1210 ай бұрын
Make a video for the find target when sorted arr is rotated problem too
@sharukhsm0078 ай бұрын
Why is M = 6 when it's actually 7 in your example?
@GregHogg8 ай бұрын
Sorry did I get something wrong here?
@adithyar31608 ай бұрын
luvd it mate
@GregHogg8 ай бұрын
Super glad to hear it ☺️
@fadygamilmahrousmasoud58634 ай бұрын
another solution is : pushing the items into max-heap then loop through the heap values -> pop the root as long as the heap has more than one value left, once the heap has one value left, its the min value return it and done but its nLongn I guess