找出字符串
2016-05-23 16:47
253 查看
题目描述
有一个排过序的字符串数组,但是其中有插入了一些空字符串,请设计一个算法,找出给定字符串的位置。算法的查找部分的复杂度应该为log级别。给定一个string数组str,同时给定数组大小n和需要查找的stringx,请返回该串的位置(位置从零开始)。
测试样例:
["a","b","","c","","d"],6,"c"
返回:3
【思路】题目要求log级别复杂度,已经排好序的用二叉查找
class Finder {
public:
int findString(vector<string> str, int n, string x) {
// write code here
if(n<=0) return -1;
int low = 0, high = n-1;
while(low <=high){
int mid = low + (high-low) / 2;
if(str[mid]==x){
return mid;
}else if(str[mid]>x){
high = mid - 1;
}else
low = mid +1;
}
return -1;
}
};
相关文章推荐
- Word Break
- 对比一下$(function () {});和$(window).load(function(){});
- 292. Nim Game
- Mongodb 上传图片
- vsphere server安装win10问题
- placeholder
- android 自动打包
- 最近写代码的一些记录
- Mongodb 上传图片
- Mongodb 上传图片
- SCCM TP4部署Office2013之OCT设置 推荐
- bzoj 4245 OR-XOR(按位异或贪心)
- SNMP4J 源码包中的使用说明
- hdu 5690 All X
- Web/HTTP 调试利器(Fiddler)
- Thinking in java 之 内部类
- Java Arrys的用法
- NSDictionary的使用及常用方法(如实始化、添加元素、删除元素、修改元素值等)
- Fiddler(Web/HTTP调试利器)
- 专题:链表结点的删除