升序数组中寻找A[x] == x 的下标
来源:互联网 发布:got it 和get it的区别 编辑:程序博客网 时间:2024/05/21 10:15
朴素想法:
顺序遍历 复杂度 O(n);
int FoundIndex(int data[], int length){ for(int i = 0 ; i < length; ++i) { if(data[i] == i) return i; } return -1;}
利用升序的性质 二分查找 复杂度 O(log(n));
int FoundIndex(int data[], int length, int start, int end){ if(data== NULL || start < 0|| end > length) { return -1; } int mid = (start + end) /2; if( data[mid] == mid) { return mid; } else if(data[mid] > mid) { end = mid-1; return FoundIndex(data,length, start, end); } else if(data[mid] < mid) { start = mid+1; return FoundIndex(data,length, start, end); }}
int main(){ int data1[]= {2,2,2,4,6,7,7}; int length = sizeof(data1)/sizeof(data[0]); cout<<FoundIndex(data1,length)<<endl; cout<<FoundIndex(data1,length, 0,length -1)<<endl; return 0;}
0 0
- 升序数组中寻找A[x] == x 的下标
- 寻找升序整数数组中元素与对应下标相等的数
- 编写一个方法search(int a[],in x):若数组a中存在值为x的元素,则返回该元素的下标值,否则返回-1。
- 确定升序数组中使得A[i] = i 的整数i值
- leetcode——Search for a Range 排序数组中寻找目标下标范围(AC)
- 二分查找binsearch: 在v[0]<=v[1]<=v[2]<=......<=v[n-1]中查找x,数组v的元素必须以升序排列
- X^a mod b=c 式子中求所有的X(b总是质数)
- 寻找数组支配者下标
- A+B=X
- a<=1 && !x++
- 第十四题(升序数组中寻找和为特定数的两个元素)
- SICP 习题1.36 使用不动点发寻找x^x = 1000的根
- 分别输出a*x*x+b*x+c=0的三种情况的根
- 求一元二次方程a*x*x+b*x+c=0的3个根
- x=a%pq与x=a%p,x=a%q的关系(pq互质)
- 寻找两个升序数组里的共同值
- Recursion 在数组中寻找神奇下标 @CareerCup
- x=x++的问题
- android shape的使用
- CSS阴影效果(兼容N多浏览器)
- RCP表格排序
- 去掉微信浏览器里的放大缩小按钮
- 顺序栈应用(十进制转换为2进制)
- 升序数组中寻找A[x] == x 的下标
- 八大渲染引擎的分析
- python时间操作
- MFC:网络编程
- Sec site list
- hdu 1042 N! (java大数)
- 颜色大全
- HDU 3661 Assignments 贪心排序
- 2014年10月4399校招笔试--游戏岗