为什么80%的码农都做不了架构师?>>>   

1.面试题

例如: ip计算后的值=53文本内容:1,100,北京
101,1000,上海
1001,3001,广州
...求ip=53对应的省份

2.代码如下:

#!/usr/bin/python
# coding: utf8def ip_find(ip):f_content="""1,100,北京\n101,1000,上海\n1001,3000,深圳\n3001,10000,广州\n10001,20001,杭州"""# print f_content.strip()dict1={}for i in f_content.split('\n'):l1= i.split(',')dict1[int(l1[0])] = (int(l1[1]), l1[2])# print dict1# print dict1[1][1]start,end = 0, len(dict1)sort(start, end, dict1)def sort(start, end, dict1):if ip>=sorted([i for i in dict1.keys()])[-1]:print dict1[sorted([ i for i in dict1.keys()])[-1]][1]return len_d = (start+end)/2# print 'len_d=%s' % len_d# print sorted([i for i in dict1.keys()])ip_num_1=sorted([i for i in dict1.keys()])[len_d]ip_num_2=sorted([i for i in dict1.keys()])[len_d+1]# print "ip_num_1 %s, ip_num_2 %s" % (ip_num_1, ip_num_2)if ip_num_1 <= ip < ip_num_2 :print dict1[ip_num_1][1]elif ip<ip_num_1:sort(start, len_d, dict1)elif ip >= ip_num_2:sort(len_d, end, dict1)ip=101
ip_find(ip)
结果:
上海
[Finished in 0.0s]

转载于:https://my.oschina.net/repine/blog/668131

2016-04-29 二分查找的面试题相关推荐

  1. java,二分查找法,网上查阅

    二分查找又称折半查找,它是一种效率较高的查找方法. 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元 ...

  2. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...

  3. 【Cuda并行编程之一】二分查找的探究以及Cuda的简单实现相关面试题介绍

    最近开始复习基础找工作,二分查找算是最基本而且十分重要的算法了,现在完整的解析一下,作为后面复习只用.内容分为几个部分: 一.二分查找的基本过程 折半查找技术,又称为二分查找.它的前提条件是线性表中的 ...

  4. 【小米笔试题】二分查找算法的变形

    一个有序数组的元素经过循环移动,元素的顺序可能变为"3 4 5 6 7 1 2".怎样才能找出数组中最小的那个元素?假设数组中的元素各不相同. 方法一:(暴力遍历)时间复杂度o(n ...

  5. leetcode面试题 16.21. 交换和(二分查找)

    给定两个整数数组,请交换一对数值(每个数组中取一个数值),使得两个数组所有元素的和相等. 返回一个数组,第一个元素是第一个数组中要交换的元素,第二个元素是第二个数组中要交换的元素.若有多个答案,返回任 ...

  6. 程序员面试金典 - 面试题 10.03. 搜索旋转数组(二分查找)

    1. 题目 搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详. 请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小 ...

  7. 程序员面试金典 - 面试题 10.05. 稀疏数组搜索(二分查找)

    1. 题目 稀疏数组搜索.有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置. 示例1:输入: words = ["at", "" ...

  8. 剑指Offer - 面试题53 - I. 在排序数组中查找数字 I(二分查找的变形版本)

    1. 题目 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2示例 2: 输入: nums = [5,7,7,8, ...

  9. 剑指Offer - 面试题11. 旋转数组的最小数字(二分查找)

    1. 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] ...

最新文章

  1. 程序、进程、线程的关系
  2. 正交试验优化荔枝乳酸菌饮料的配方
  3. 合并两个有序的单链表
  4. java新建测试程序_java – 如何创建一个CloseableHttpResponse对象来帮助测试?
  5. hdu 5203(枚举)
  6. App设计灵感之十二组精美的租车类App设计案例
  7. Java陷阱:内部类中的字段访问
  8. 帝国cms模板仿会员中心
  9. matlab函数包_Matlab论文插图绘制的270种补充颜色
  10. 如何设置 Windows 默认命令行窗口大小和缓冲区大小
  11. Javascript Number.MIN_VALUE
  12. |ViaVoice(IBM语音识别输入系统)下载v9.1官方版 - 欧普软件下载
  13. 空间变量php,PHP名称空间可以包含变量吗?
  14. Day 6 函数与模块
  15. 游戏设计入门——游戏程序框架设计
  16. 【书山有路】互联网+:从IT到DT 读书笔记
  17. 微信小程序的点击、双击、长按事件
  18. xml文件转json文件
  19. 数字时代的保险创新与升级 | 创新场景50
  20. c语言ab43错误的是,ab测试大并发错误

热门文章

  1. cookbook_数据结构和算法
  2. python数据结构之字典(未完成)
  3. jQuery笔记总结
  4. Paoding-Rose学习
  5. MonoBehaviour.FixedUpdate 固定更新
  6. hdu 2064汉诺塔III 递推
  7. 通过ClassLoader调用外部jar包
  8. [转]Tomcat中8005/8009/8080/8443端口的作用
  9. [codevs1105][COJ0183][NOIP2005]过河
  10. 【转】DCT变换的透彻解析