153.寻找旋转排序数组中的最小值
链接:153.寻找旋转排序数组中的最小值
难度:Medium
标签:数组、二分查找
简介:给你一个元素值 互不相同 的数组 nums ,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的 最小元素 。
题解 1 - typescript
- 编辑时间:2021-04-08
- 执行用时:96ms
- 内存消耗:39.4MB
- 编程语言:typescript
- 解法介绍:二分查找。
function findMin(nums: number[]): number {
let left = 0;
let right = nums.length - 1;
while (left < right) {
const mid = ~~((left + right) / 2);
if (nums[mid] < nums[right]) right = mid;
else left = mid + 1;
}
return nums[left];
}
题解 2 - typescript
- 编辑时间:2021-04-08
- 执行用时:92ms
- 内存消耗:39.4MB
- 编程语言:typescript
- 解法介绍:依次检测存在可能的值。
function findMin(nums: number[]): number {
const len = nums.length;
for (let i = 1; i < len; i++) {
if (nums[i] < nums[i - 1]) return nums[i];
}
return nums[0];
}
题解 3 - typescript
- 编辑时间:2021-04-08
- 执行用时:92ms
- 内存消耗:39.4MB
- 编程语言:typescript
- 解法介绍:利用 Math 直接比较。
function findMin(nums: number[]): number {
return Math.min.apply({}, nums);
}