leetcode 33.Search in Rotated Sorted Array 旋转数组二分查找法搜索
2016-10-15 16:07
441 查看
题目来源leetcode 33.Search
in Rotated Sorted Array 地址:点击打开链接
代码
in Rotated Sorted Array 地址:点击打开链接
代码
class Solution { public: int search(vector<int>& nums, int target) { int n = nums.size(); int first = 0; int last = n - 1; int mid = first + (last - first) / 2; if (nums[mid] == target) return mid; while (first != last) { if (nums[first]<=nums[mid]) { //左侧有序 if (target<nums[mid] && nums[first] <= target) last = mid - 1; else first = mid + 1; mid = first + (last - first) / 2; if (nums[mid] == target) return mid; } else if(nums[mid]<=nums[last]) { //右侧有序 if (nums[mid]<target&&target <= nums[last]) first = mid + 1; else last = mid-1; mid = first + (last - first) / 2; if (nums[mid] == target) return mid; } } return -1; } };笔记:这道题用二分法。首先思路上要明晰:中值左右两边至少有一边是有序的,所以分为两种情形,见注释。即便如此,在测试case时还是多次出现错误结果,改的心烦意乱,还用了本地调试器帮忙。上面的答案跟许多大神的相比不够简洁,跟坨shit一样,真不知道怎么才可写出简洁准确的代码。新手起步,挫折感较强。
相关文章推荐
- [LeetCode] 33. Search in Rotated Sorted Array 在旋转有序数组中搜索
- LeetCode 33 Search in Rotated Sorted Array(在旋转排序数组中搜索)(*)
- LeetCode 33. Search in Rotated Sorted Array(旋转数组搜索)
- 【LeetCode-面试算法经典-Java实现】【033-Search in Rotated Sorted Array(在旋转数组中搜索)】
- LeetCode------33. Search in Rotated Sorted Array(旋转数组中查找)
- LeetCode 81. Search in Rotated Sorted Array II(搜索旋转的数组)
- leetCode 81.Search in Rotated Sorted Array II (旋转数组的搜索II) 解题思路和方法
- [LeetCode] Search in Rotated Sorted Array 在旋转有序数组中搜索
- leetcode 7. 在有序可重复数组旋转后搜索 Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array II 在旋转有序数组中搜索之二
- [Leetcode] search in rotated sorted array ii 搜索旋转有序数组
- leetCode 33.Search in Rotated Sorted Array(排序旋转数组的查找) 解题思路和方法
- [LeetCode] 81. Search in Rotated Sorted Array II 在旋转有序数组中搜索 II
- [Leetcode] search in rotated sorted array 搜索旋转有序数组
- leetcode 6. 在有序数组旋转后搜索 Search in Rotated Sorted Array
- LeetCode-Search in Rotated Sorted Array II-在旋转数组中搜索-二分查找
- 【LeetCode-面试算法经典-Java实现】【081-Search in Rotated Sorted Array II(搜索旋转的排序数组)】
- LeetCode-Search in Rotated Sorted Array-旋转数组中的搜索-二分搜索+代数逻辑
- LeetCode 33. Search in Rotated Sorted Array(旋转有序数组,查找目标值Ⅰ)
- LeetCode 33. Search in Rotated Sorted Array(在旋转有序序列中搜索)