Search in Rotated Sorted Array
来源:互联网 发布:淘宝累计消费怎么看 编辑:程序博客网 时间:2024/05/16 23:50
- 首先我要在纸上,非常非常聪明且迅速且机灵,
- 给出几个用例,找出边界用例和特殊用例,确定特判条件;在编码前考虑到所有的条件
- 向面试官提问:问题规模,特殊用例
- 给出函数头
- 暴力解,简述,优化。
- 给出能够想到的最优价
- 伪代码,同时结合用例
- 真实代码
Search in Rotated Sorted Array
Suppose a sorted array 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.
http://collabedit.com/wutd3
bool in(vector<int> &arr, int l, int h, int x){ if(arr[l]<arr[h]) return x>=arr[l] && x<=arr[h]; else return x>=arr[l] || x<=arr[h];}int search(vector<int> &arr, int x){ int l=0, h=arr.size(); while(l<h-1) { int m = l+(h-l)/2; if(in(arr, l, m, x)) h=m; else l=m+1; } if(arr[l]==x) return l; else return -1;}
修正版:
class Solution {public: int search(int arr[], int n, int x) { int l=0, h=n-1; while(l<h-1) { int m = l+(h-l)/2; if(in(arr, l, m, x)) h=m; else l=m+1; } if(arr[l]==x) return l; if(arr[h]==x) return h; else return -1; } bool in(int arr[], int l, int h, int x) { if(arr[l]<arr[h]) return x>=arr[l] && x<=arr[h]; else return x>=arr[l] || x<=arr[h]; }};
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- 三十六计
- Ubuntu下为Firefox安装Adobe Flash Player
- Java面试宝典2012版
- 关于windows IIS+php5.4,php.ini的配置说明
- Android 实时获取麦克风输入音量的代码
- Search in Rotated Sorted Array
- 组合计数问题方法
- 在宿舍如何让主机和虚拟机同时上网?
- 几种源码开放的嵌入式文件系统分析与比较
- Java BASE64加密解密 url等
- 人,是不是都有两个自我
- duilib-erp修正了Grid的bug
- Internet Explorer 10全新浏览器
- JavaScript库开发者们的规则