旋转数组二分查找法搜索
来源:互联网 发布:nginx 源码 编辑:程序博客网 时间:2024/05/21 18:33
题目来源leetcode 33.Search 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;elsefirst = 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;elselast = mid-1;mid = first + (last - first) / 2;if (nums[mid] == target)return mid;}} return -1; }};笔记:这道题用二分法。首先思路上要明晰:中值左右两边至少有一边是有序的,所以分为两种情形,见注释。即便如此,在测试case时还是多次出现错误结果,改的心烦意乱,还用了本地调试器帮忙。上面的答案跟许多大神的相比不够简洁,跟坨shit一样,真不知道怎么才可写出简洁准确的代码。新手起步,挫折感较强。
0 0
- 旋转数组二分查找法搜索
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组的二分查找
- 旋转数组(二分查找)
- 旋转数组的二分查找
- 二分查找应用-旋转数组
- 旋转数组的二分查找
- 旋转数组 二分查找 查找一个目标值
- 查找旋转数组的最小值-- 二分查找
- 剑指offer-旋转数组的最小数字-二分查找法
- 旋转有序数组的二分查找
- 旋转有序数组的二分查找
- 旋转有序数组的二分查找
- 循环有序数组/旋转数组的二分查找
- 二分查找法与二分搜索树
- 对卷积的简单理解
- Android版本对于SDK
- Eclipse Hadoop插件安装
- 1、markdown编辑器
- 泛型
- 旋转数组二分查找法搜索
- 二叉树的层次遍历方法
- hdu 1027 Ignatius and the Princess II(STL全排列)
- POJ Period 1691(kmp)
- 2016年华东师范大学考研分数线汇总
- 了解 Nginx 基本概念
- teqc plot file介绍及可视化软件
- Level-order Traversal
- 采集,添加入库,展示生成静态页面