javascript - JavaScript(在旋转排序数组中查找最小值)
问题描述
我有一个leetcode问题,我尝试使用自己的方法来解决它,但是我得到了一个错误,我不知道出了什么问题。
这是我尝试的解决方案:
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]);
并且输出未定义。
我也试过这个:
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]);
输出为 3。
我试图调试它,我得到了这个:
我不明白为什么我的递归解决方案不正确。请注意,我尝试在考虑时间复杂度的情况下实施解决方案。
解决方案
如果要查找数组中的最小值,只需使用Math.min
.
例子:
console.log(Math.min.apply(null, [3,4,5,1,2]))
推荐阅读
- graphdb - GraphDB 工作台能否用于现有的 RDF4J 服务器?
- windows - 我发现了这个 PowerShell 进程,我认为它可能是恶意的
- python - 使用 patch() 来模拟我没有明确导入的东西
- react-native - 在 React Native 中使用 iOS 设备从服务器获取数据
- html - 带有预签名网址的 S3 PDF - 无法在 chrome 的新标签中打开
- json - JSON对象在结构中返回错误的数字
- linux - 在bash中将目录中所有文件名的第n个字符转换为大写
- html - 更改不同块的背景颜色
- c++ - 如果 * 表示指向变量的地址,为什么 eg (int*)var 不指向 var?
- javascript - React Native 和 Reactotron 中 RealmDB 对象的问题