leetcode 33. Search in Rotated Sorted Array(二分查找)
来源:互联网 发布:linux mount 远程挂载 编辑:程序博客网 时间:2024/05/01 21:58
只要找到枢轴,在左边或者右边查找target,因为是有序的,所以使用二分查找,这里实现了递归和非递归两种二分查找:
/*int binarySearch(int *nums,int left,int right,int target) //递归的{ int mid; if(left>=right) { if(nums[left]==target) return left; else if(nums[right]==target) return right; else return -1; } else { mid=(left+right)/2; if(target>nums[mid]) { mid++; return binarySearch(nums,mid,right,target); } else if(target<nums[mid]) { mid--; return binarySearch(nums,left,mid,target); } else return mid; }}*/int binarySearch(int *nums,int left,int right,int target) //非递归的方法{ int mid; while(left<=right) { if(nums[left]==target) return left; else if(nums[right]==target) return right; else { mid=(left+right)/2; if(target>nums[mid]) { mid++; left=mid; } else if(target<nums[mid]) { mid--; right=mid; } else return mid; } } return -1;}int search(int* nums, int numsSize, int target) { int i; if(nums[0]<=nums[numsSize-1]) //没有经过旋转 return binarySearch(nums,0,numsSize-1,target); else { int pivot=0; for(i=0;i<=numsSize-2;i++) { if(nums[i]>nums[i+1]) { pivot=i; break; } } if(target<=nums[numsSize-1]&&target>=nums[pivot+1]) { return binarySearch(nums,pivot+1,numsSize-1,target); } else if(target>=nums[0]&&target<=nums[pivot]) { return binarySearch(nums,0,pivot,target); } else return -1; }}
0 0
- leetcode 33. Search in Rotated Sorted Array(二分查找)
- leetcode 33. Search in Rotated Sorted Array 二分查找
- leetcode 33. Search in Rotated Sorted Array (复杂二分查找)
- leetcode 二分查找 Search in Rotated Sorted Array
- LeetCode 33 Search in Rotated Sorted Array (二分查找 推荐)
- [LeetCode 33]Search in Rotated Sorted Array (二分查找)
- leetcode 81. Search in Rotated Sorted Array II 二分查找
- leetcode---search-in-rotated-sorted-array---查找
- 二分查找 检查边界条件 Leetcode 33. Search in Rotated Sorted Array
- ※ Leetcode - Binary Search - 153. Find Minimum in Rotated Sorted Array(二分查找)
- Leetcode 33 - Search in Rotated Sorted Array(二分)
- Leetcode 81 - Search in Rotated Sorted Array II(二分)
- [LeetCode]33.Search in Rotated Sorted Array
- LeetCode --- 33. Search in Rotated Sorted Array
- LeetCode 33.Search in Rotated Sorted Array
- [Leetcode] 33. Search in Rotated Sorted Array
- Leetcode-33.Search in Rotated Sorted Array.
- [leetcode] 33. Search in Rotated Sorted Array
- Python文件操作
- 斐波那契数的栈模拟递归算法
- 【BZOJ3994】【SDOI2015】约数个数和
- unix网络编程----------fifo
- 网络请求(HttpUrlConnection/HttpClient)
- leetcode 33. Search in Rotated Sorted Array(二分查找)
- RecyclerView子View宽度不充满父容器
- 20160925python
- 基于竞争的MAC协议
- [Python]通过调用百度翻译API实现的翻译小程序
- python爬虫入门简单爬虫
- javascript学习(二) 时间效果实现
- tar相关命令
- 微信小程序