给出一个有效的算法来确定在整数A1<A2<A3<...<AN的数组中是否存在整数i使得Ai=i
来源:互联网 发布:企业数据标准化 编辑:程序博客网 时间:2024/05/18 03:48
数据结构与算法分析——c语言描述 练习2.11
二分搜索改一下就行,只不过判断的是数列的下标。
</pre><pre name="code" class="cpp">#include<stdio.h>#define MAXN 1000int a[MAXN];bool binarySearch(int low, int high) {while (low <=high) {int mid = (low + high) / 2;if (a[mid] > mid+1)high = mid - 1;else if (a[mid] < mid+1)low = mid + 1;else return true;}return false;}int main() {int n;scanf("%d", &n);for (int i = 0; i < n; i++)scanf("%d", &a[i]);if (binarySearch(0, n - 1))printf("yes\n");elseprintf("no\n");}
0 0
- 给出一个有效的算法来确定在整数A1<A2<A3<...<AN的数组中是否存在整数i使得Ai=i
- 2-11 整数数组 A1<A2<A3......An中是否存在 Ai = i?
- 求浮点数数组A={A1,A2,A3,…,An}中,Aj-Ai(j>i)的最大值。要求时间复杂度越小越好
- 给出一列数a1,a2,a3....an,求它们的逆序对数,即有多少个有序对(i,j) 使得i<j,ai>aj,n高达10的6次方
- 最大子序列问题:给定一整数序列A1,A2,A3...An(可能有负数),求A1~An的一个最大子序列Ai~Aj的和。
- 确定升序数组中使得A[i] = i 的整数i值
- 给一个数组[a1,a2,a3....an],要求出令ai-aj有最大值,其中i<=j,时间和空间复杂度尽可能小
- 给定整数a1、a2、a3、...、an,判断是否可以从中选出若干个数,使得它们的和等于k(k任意给定,且满足-10^8 <= k <= 10^8)。
- 给定一个数列a1,a2,a3,...,an和m个三元组表示的查询,对于每个查询(i,j,k),输出ai,ai+1,...,aj的升序排列中第k个数。
- 设n个不同的整数排好序后存于T[1..n]中,若存在一个下标i(1≤ i ≤ n),使得T[i]=i。试设计一个有效算法找到这个下标,要求算法在最坏情形下的计算时间为O(log n)
- 给定一个n个整数的数组S,是否存在S中的4个数,使得a + b + c + d = target。 在数组中找出所有唯一的四元组,给出目标的总和。
- 数组元素交叉排列的算法题(a1 a2 a3 .. an b1 b2 b3 .. bn -->a 1 b1, a2 b2, a3 b3, .. an bn )
- 数组元素交叉排列的算法题(a1 a2 a3 .. an b1 b2 b3 .. bn -->a 1 b1, a2 b2, a3 b3, .. an bn )
- 数组元素交叉排列的算法题(a1 a2 a3 .. an b1 b2 b3 .. bn -->a 1 b1, a2 b2, a3 b3, .. an bn )
- 设双链表表示的线性表L=(a1,a2,a3.....an)将L改造为L=(a1,a3,....an...a4,a2)
- 疑问:已知a1,a2,...,an是正整数。如果有(a1+a2+...+an)-n+1只鸽子放在n只鸽笼中,则对某个数i,“第i个鸽笼中至少含有ai只鸽子”一定正确
- 数组元素交叉排列的算法题(a1 a2 a3 .. an b1 b2 b3 .. bn -->a 1 b1, a2 b2, a3 b3, .. an bn ) 概论思想(perfect shuffle 算法)
- 2. 对数组排序,使得a1<=a2>=a3<=a4>=... 也是很简单的O(n),注意写的时候不用swap元素。。。
- 删除算法3 unique 将连续相同的数删除
- java 模拟登陆正方教务系统
- Android APP字体大小,不随系统的字体大小变化而变化的方法
- 用PHP实现n的阶乘--高精度算法
- 51nod1289 大鱼吃小鱼
- 给出一个有效的算法来确定在整数A1<A2<A3<...<AN的数组中是否存在整数i使得Ai=i
- C++ list 初识
- 更改数据库表名
- 1079. Total Sales of Supply Chain (25)
- oracle锁的理解
- Android学习碎片(三)——Handler、Message、Runnable之间的联系①
- Java+jSSC 串口从读取数据
- 一个iOS开发者的修真之路
- 匈牙利命名法收藏