上线了自助建站,优化方案物理必修三电子版,网站ie不兼容,英文网站如何做题目来源#xff1a; leetcode题目#xff0c;网址#xff1a;33. 搜索旋转排序数组 - 力扣#xff08;LeetCode#xff09;
解题思路#xff1a; 在二分查找时#xff0c;分情况讨论即可。通过与第一个元素和最后一个元素的比较来获得 mid 处于第一个序列中还是第…题目来源 leetcode题目网址33. 搜索旋转排序数组 - 力扣LeetCode
解题思路 在二分查找时分情况讨论即可。通过与第一个元素和最后一个元素的比较来获得 mid 处于第一个序列中还是第二个序列中。
解题代码
class Solution {
public:int search(vectorint nums, int target) {if(targetnums[0]){return 0;}else if(targetnums[nums.size()-1]){return nums.size()-1;}int left1;int rightnums.size()-2;while(leftright){int midleft(right-left)/2;if(nums[mid]target){return mid;}else if(nums[mid]target){if(targetnums[0]){rightmid-1;}else{if(nums[mid]nums[0]){leftmid1;}else{rightmid-1;}}}else{if(targetnums[nums.size()-1]){leftmid1;}else{if(nums[mid]nums[nums.size()-1]){rightmid-1;}else{leftmid1;}}}}return -1;}
}; 总结 官方题解也是二分不过他是先判断[l,mid] 和 [r,mid] 哪个有序若不在有序的区间中则在无序的区间中。