题意:给一个按照升序排序的正整数数组。这个数组很大以至于只能通过固定的接口ArrayReader->get(k)来访问第k个数。并且也没有办法得知这个数组有多大。找到给出的整数target第一次出现的位置。你的算法需要在O(logk)的时间复杂度内完成,k为target第一次出现的位置的下标。如果找不到target,返回-1。

思路:倍增找到第一个大于target的位置,然后二分

 class Solve
{
int searchBigSortedArray(ArrayReader* reader,int target)
{
int index = ;
while(reader->get(index-)<target)
index*=;
int start=,end=index;
while(start<=end)
{
int mid = start+(end-start)/;
if(reader->get(mid)==target)
return mid;
else if(reader->get(mid)>target)
end = mid-;
else start = mid+;
}
return -;
}
};

最新文章

  1. wpf 客户端 添加qq客服咨询
  2. iScroll-5 API 中文版
  3. JavaScript 正则表达式上——基本语法
  4. Apache Shiro 简介
  5. sudo简单命令语法及配置
  6. cpu,内存,虚拟内存,硬盘,缓存之间是什么关系??
  7. Unity小厨房之-----背后视角摄像机
  8. Centos6.4 mysql安装与配置
  9. FTP服务器搭建及操作(一)
  10. 团队作业2——需求分析&amp;原型设计
  11. Spring Security 入门(1-1)Spring Security是什么?
  12. android 屏幕适配,hdpi,xhdpi,xxhdpi理解,常见出图
  13. ubuntu10.04 安装oracle server 版 笔记
  14. 椭圆曲线密码学ECC
  15. python--json、jsonpath
  16. Linux下C语言的文件操作
  17. 一道面试题 包含了new的细节 和运算符的优先级 还有属性访问机制
  18. std::async
  19. windows 本地搭建 apache+mysql+php环境详细讲解
  20. Android应用开发基础之一:数据存储和界面展现(一)

热门文章

  1. nginx(一)初识nginx
  2. 关于申请GMS认证来使用谷歌的一些服务应用及闭源API
  3. Red Hat Enterprise Linux AS4, C++ OCCI connect Oracle 9i
  4. Transaction check error: file /etc/rpm/macros.ghc-srpm from install of redhat-rpm-config-9.1.0-80.el7.centos.noarch conflicts with file from package epel-release-6-8.noarch Error Summary ----------
  5. 如何确定Kafka的分区数、key和consumer线程数
  6. vue实战记录(二)- vue实现购物车功能之创建vue实例
  7. java远程文件操作
  8. 3537. 【NOIP2013提高组day2】华容道(搜索 + 剪枝)
  9. 四大解析器(BeautifulSoup、PyQuery、lxml、正则)性能比较
  10. PowerDesigner生成pdm(适用Mysql)