输入连续有序数组,数组中有一个数字丢失,二分查找
2013-04-22 00:00
495 查看
微软面试题: 输入连续有序数组,数组中有一个数字丢失,tip:二分查找
比较简单,主要是熟悉手写代码。
贴上代码:
比较简单,主要是熟悉手写代码。
贴上代码:
#include <iostream> using namespace std; int func(int *index,int begin,int end){ if(begin>end){ return NULL; } int i = begin; int j = end; while(i<j){ int p = i + ((j-i)>>1); if(index[p]-index[0] == p){ i = p+1; }else if(index[p]-index[0]>p){ j = p; } } return j+index[0]; } int main(){ int index[] = {1,2,3,5,6}; int ret = func(index,0,5); cout << ret << endl; }
相关文章推荐
- 输入一个有序数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字
- 程序员面试题目总结--数组(二)【二分查找、找出给定数字出现次数、两个有序整型数组交集、找出数组中唯一的重复元素、判断数组中的数值是否连续相邻】
- python实现:使用二分查找,查找有序数组中,一个数字最后出现的下标
- 输入字符串,内有数字和非字符数组,例如A123x456将其中连续的数字作为一个整数,依次存放到一个数组中,如123放到a[0],456放到a[1],并输出a这些数
- C输入一个字符串,将其中连续的数字做为一个整数存放在一个整形数组中,统计其中数字的个数并输出这些整数。
- 在一个有序数组中查找具体的某个数字——二分法——函数法
- 微软面试14题 输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
- 14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)
- 在有序数组中查找两个数,使得它们的和正好是输入的那个数字。时间复杂度O(n)
- 输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。
- 写一个函数,实现一个整形有序数组的二分查找
- 【二分查找】用C语言实现一个有序数组的二分查找
- 输入一个字符串内有数字和非数字字符,将连续的数字作为一个整数,存到数组a中,统计整数的个数,并输出这些数
- 一个有序数组数组,给出和为s的两个数字和连续正数数列
- 输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
- 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
- 第14 题: 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
- 输入一个字符串,将其中的连续数字字符组成整数,并放入数组中,在主函数中打印这个数组及数组的个数。
- 【编程题目】输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
- 【算法】输入一个已经按升序排过的数组和数字,在数组中查找两个数字,使得它们的和正好是输入那个数字。