leetcode(js)-每日一练之 寻找旋转排序数组中的最小值 题库编号153
2020-06-04 06:44
405 查看
leetcode(js)-每日一练之 寻找旋转排序数组中的最小值
主要思路:
- 主要运用二分法
- 如果数组长度为1,返回唯一的一个数
- 定义两个指针,第一个left指向数组开头,第二个right指向数组结尾
- 检查数组是否被翻转,如果没有,则返回数组里的第一个数
- 当left小于right时,取中间值作为mid进行二分搜索,如果mid的左边一个数大于mid,则返回mid,或者mid的右边一个数小于mid,则返回mid+1
- 否则的话,如果left所在的数小于mid,则将left右移至mid+1位置(砍掉左半边)
- 否则的话,将right左移至mid-1位置(砍掉右半边)
var findMin = function(nums) { if(nums.length===1) { return nums[0]; } let left = 0; let right = nums.length-1; if(nums[left]<nums[right]) { return nums[0]; } while(left<right) { let mid = Math.floor(left+(right-left)/2);//注意中间值的找法 if(nums[mid]<nums[mid-1]) { return nums[mid]; } if(nums[mid]>nums[mid+1]) { return nums[mid+1] } if(nums[mid]>nums[left]) { left=mid+1; }else{ right=mid-1; } } };
相关文章推荐
- 【Python】【难度:困难】Leetcode 154. 寻找旋转排序数组中的最小值 II
- LeetCode 153. 寻找旋转排序数组中的最小值 Python
- 2020-5 leetcode 154. 寻找旋转排序数组中的最小值 II
- 【手绘漫画】图解LeetCode之寻找旋转排序数组中的最小值 II(LeetCode154题)
- 153. 寻找旋转排序数组中的最小值(Find Minimum in Rotated Sorted Array)
- 寻找旋转排序数组中的最小值
- lintcode:寻找旋转排序数组中的最小值 II
- LeetCode 寻找旋转排序数组中的最小值
- LintCode-寻找旋转排序数组中的最小值 II
- leetcode(js)-每日一练之 存在重复元素 题库编号217 219
- leetcode之数组类之数组的旋转与分治类-----OJ 189/33/81/153/154 数组旋转 旋转数组搜索 88 有序数组合并 4 两个有序数组寻找第K个元素/中位数 35 寻找插入位置
- [LeetCode] Find Minimum in Rotated Sorted Array II 寻找旋转有序数组的最小值之二
- leetcode(js)-每日一练之 打家劫舍 题库编号198
- 面试题8:旋转数组的最小值(Leetcode-153,154)
- 寻找旋转排序数组中的最小值 II
- 【LeetCode-面试算法经典-Java实现】【153-Find Minimum in Rotated Sorted Array(找旋转数组中的最小数字)】
- 寻找旋转排序数组中的最小值
- LeetCode-Find Minimum in Rotated Sorted Array II-旋转排序数组找最小-二分查找
- [LeetCode] 153. Find Minimum in Rotated Sorted Array 寻找旋转有序数组的最小值
- 2020/4/27 LeetCode每日一题 33. 搜索旋转排序数组 二分法,老实分类讨论