旋转数组求某个值:今日头条面试题--二分法
来源:互联网 发布:python有哪些图形库 编辑:程序博客网 时间:2024/05/22 15:16
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might become 4 5 6 7 0 1 2
).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
Subscribe to see which companies asked this question.
class Solution {public: int search(vector<int>& nums, int target) { int left=0,right=nums.size()-1; while(left<=right){ if(right-left<=1){ //我这种判断边界的方法非常暴力无脑,我喜欢。 if(nums[right]==target) return right; else if(nums[left]==target) return left; } int mid=(left+right)/2; if(nums[mid]==target) return mid; else if(nums[mid]>=nums[right]){ if(nums[mid]>=target&&target>=nums[left]) right=mid-1; else left=mid+1; }else{ if(nums[mid]<=target&&target<=nums[right]) left=mid+1; else right=mid-1; } } return -1; }};
如果有重复的咋办呢?直接把right--就可以了,直到没有找到重复的为止。
class Solution {public: int search(vector<int>& nums, int target) { int left=0,right=nums.size()-1; while(left<=right){ if(right-left<=1){ if(nums[right]==target) return right; else if(nums[left]==target) return left; } int mid=(left+right)/2; if(nums[mid]==target) return true; else if(nums[mid]>nums[right]){ if(nums[mid]>=target&&target>=nums[left]) right=mid-1; else left=mid+1; }else if(nums[mid]<nums[right]){ if(nums[mid]<=target&&target<=nums[right]) left=mid+1; else right=mid-1; }else{ --right; } } return false; }};
0 0
- 旋转数组求某个值:今日头条面试题--二分法
- 旋转数组的二分法查找
- 二分法求数组最大最小值
- Sorting&Searching 旋转数组二分法查找 @CareerCup
- 关于二分法在旋转数组中的应用
- 旋转数组求最小值
- 旋转数组求最小值
- 旋转数组求最小值
- 面试题:旋转数组
- 二分法查询(某个网站的面试题)
- 求旋转数组的最小值
- 求旋转数组的最小值
- 求旋转数组中的最小值
- [剑指offer][面试题08]求旋转数组的最小数字
- 剑指 offer——面试题8求旋转数组的最小值
- 面试题--数组旋转续
- 面试题90:旋转数组
- 旋转数组中查找某个元素
- 关于复制构造函数的调用时机
- java线程安全小结
- 【黑客解析】黑客是如何实现数据库勒索的?
- 指针与指针的指针
- Extjs4学习笔记(四)------可编辑表格
- 旋转数组求某个值:今日头条面试题--二分法
- PHP解耦的三重境界(浅谈服务容器)
- IDEA 整合 Struts2+Spring4+Hibernate5
- 【HDU 5971】二分染色
- CSS 8种清除浮动的方法
- Spring的bean创建顺序
- iOS获取图片的区域主色
- java中父类中的私有方法的问题
- C++友元函数