I have a leetcode question that I tried to use my own method to solve it, but I got an error and I don't know what's wrong.
This is my attempted solution:
var findMin = function(nums) {
if (nums.length === 0) return undefined;
var minEle = nums[0];
if (nums.length === 1) {
minEle = nums[0];
return minEle;
}
var start = 0;
var end = nums.length - 1;
if (nums[end] > nums[start]) {
end = Math.floor(end / 2);
} else {
start = Math.ceil(end / 2);
}
findMin(nums.slice(start, end + 1));
};
findMin([3,4,5,1,2]);
and the output is undefined.
I tried this too :
var findMin = function(nums) {
if (nums.length === 0) return undefined;
var minEle = nums[0];
if (nums.length === 1) {
minEle = nums[0];
return minEle;
}
var start = 0;
var end = nums.length - 1;
if (nums[end] > nums[start]) {
end = Math.floor(end / 2);
} else {
start = Math.ceil(end / 2);
}
findMin(nums.slice(start, end + 1));
return minEle;
};
findMin([3,4,5,1,2]);
And the output is 3.
I tried to debug it and I got this:
I don't understand why my recursion solution is not correct. Note that I tried to implement a solution with consideration of time complexity.

