LeetCode || Search in Rotated Sorted Array
2015-07-21 19:46
477 查看
class Solution { public: int search(vector<int>& nums, int target) { int i = 0, j = nums.size()-1; int mid = i; while(i<=j) { //if(nums[i]<=nums[j])//如果属于一个递增的序列,则只需要二叉遍历即可。 // return BinarySearch(nums, i, j, target); mid = (i+j)/2; if(target == nums[mid])//已经查找到mid处 return mid; if(target == nums[i])//查找到头部 return i; if(mid == i)//避免进入死循环 { i++; continue; } if(target > nums[i])//查找结果在前面半段 { if(nums[mid] > nums[i] && target > nums[mid]) i = mid; else j = mid; } else//target < nums[i] 查找结果在后面半段 { if(nums[mid] < nums[i] && target < nums[mid]) j = mid; else i = mid; } } return -1; } int BinarySearch(vector<int>& nums, int start, int end, int target)//二分查找算法 { int mid = start; while(start <= end) { mid = (start+end)/2; if(target == nums[mid]) return mid; if(mid == start) { start++; continue; } if(nums[mid] > target) end = mid; else start = mid; } return -1; } };
相关文章推荐
- C语言不使用库函数对字符串操作
- ZOJ 2109 FatMouse' Trade (背包 dp + 贪婪)
- Swift2学习:Swift概览3-函数和闭包
- 统计字符
- SonarQube 安装及配置
- Hibernate系列-Hibernate原理
- 工作记事 unknownHost
- Hibernate系列-Hibernate原理
- ubuntu下X Windows下网络图标未出现以及后续的设备未托管问题解决方案。
- 幻方的实现,矩阵每行每列每个对角线之和相等
- 1052. Linked List Sorting (25)
- 日文游戏常见日语单词及读音
- UITabBarItem初始化详解及UIImage渲染模式
- 1052. Linked List Sorting (25)
- Ubuntu命令
- 图像处理中目标函数求解方法整理(更新一部分)
- Remove Nth Node From End of List
- Notepad++加上xml格式化的功能
- EditText 双击才能获取点击事件
- makefile 常用函数notdir、wildcard、patsubst