Submission Details
2015-08-01 04:04
260 查看
题目大意
这个题目出得很无聊,给你一个所谓的排好序的数组(比如说4 5 6 7 0 1 2 3),每个元素只出现一次,然后让你找中间一个值的下标,如果不存在返回-1思路
二分查找,主要难点在二分范围的确定。很显然,如果 nums[l]<=nums[mid]} 那么[l,mid]为递增序列
CODE
class Solution { public: int search(vector<int>& nums, int target) { int l = 0, r = nums.size() - 1; while (l != r) { const int mid = (l + r) >> 1; if (nums[mid] == target) { return mid; } if (nums[l] <= nums[mid]) { if (nums[l] <= target && target < nums[mid]) { r = mid; continue; } l = mid + 1; continue; } if (nums[mid] < target && target <= nums[r]) { l = mid + 1; continue; } r = mid; } if (nums[l] == target) { return l; } return -1; } };
相关文章推荐
- 搜狗百度360市值齐跌:搜索引擎们陷入集体焦虑?
- 本人即将筹备败家日志,敬请期待!
- IE:使用搜索助手
- C++二分查找在搜索引擎多文档求交的应用分析
- C++深度优先搜索的实现方法
- 基于文本的搜索
- php实现搜索一维数组元素并删除二维数组对应元素的方法
- 使用Sphinx对索引进行搜索
- C#二分查找算法实例分析
- asp 多关键词搜索的简单实现方法
- C#使用foreach语句搜索数组元素的方法
- JavaScript中数组的排序、乱序和搜索实现代码
- C#编程实现Excel文档中搜索文本内容的方法及思路
- sqlserver中在指定数据库的所有表的所有列中搜索给定的值
- 可以用来搜索当前页面内容的js代码
- 全文搜索和替换
- javascript搜索自动提示功能的实现第1/3页
- mysql 模糊搜索的方法介绍
- 基于ASP.NET的lucene.net全文搜索实现步骤
- 做个自己站内搜索引擎