早教吧作业答案频道 -->其他-->
已知有序数列A[1..n]和一个正整数x,设计一个复杂度为O(n)的算法,判断A中是否有两个元素它们的和是x。数列中若是整数我会做,但若是分数该如何求解呢?我的整数解法是用空间换时间,
题目详情
已知有序数列A[1..n]和一个正整数x,设计一个复杂度为O(n)的算法,判断A中是否有两个元素它们的和是x。
数列中若是整数我会做,但若是分数该如何求解呢?
我的整数解法是用空间换时间,就是用x减去所有大于x/2的数,得出结果放在一个大小为[x/2]的数组a中,其值与数组中的位置对应,若有此值,则数组相应位置设为1,然后遍历小于x/2的数,对数m,若数组中对应位置a[m]为1,则返回true,若没有一个对应位置为1,则为false...
数列中若是整数我会做,但若是分数该如何求解呢?
我的整数解法是用空间换时间,就是用x减去所有大于x/2的数,得出结果放在一个大小为[x/2]的数组a中,其值与数组中的位置对应,若有此值,则数组相应位置设为1,然后遍历小于x/2的数,对数m,若数组中对应位置a[m]为1,则返回true,若没有一个对应位置为1,则为false...
▼优质解答
答案和解析
你的算法不够好,如果整数很大(比如都是10亿以上),你哪有那么大的内存去开数组呢?
有一个算法是:
建立两个指针p,q,p指向数组第一个元素,q指向数组最后一个元素,[p]表示p内容,算法可以写成:
while(p x)
break;
}
q--;
}
return false;
数组每个元素最多只被p,q一个指针扫描一次,所以总时间复杂度O(N),而且数组元素可以为任意类型
有一个算法是:
建立两个指针p,q,p指向数组第一个元素,q指向数组最后一个元素,[p]表示p内容,算法可以写成:
while(p x)
break;
}
q--;
}
return false;
数组每个元素最多只被p,q一个指针扫描一次,所以总时间复杂度O(N),而且数组元素可以为任意类型
看了 已知有序数列A[1..n]和...的网友还看了以下:
用随机整数形成一个6´6的一位整数方阵(1)求出其上三角元素和下三角元素(不包括对角线)的和(2)求 2020-03-30 …
matlab 矩阵的每一个元素都等于前几个元素的和 如何实现如题,比如我有一个矩阵A=[2 4 8 2020-05-16 …
高中化学种常用元素的常用化合价都有哪些?尽量把元素以及元素的所有化合价都列举出来有重谢! 2020-05-16 …
已知集合M是由自然数中不大于9的偶数所组成,设m是M中所有元素的乘积,n是M中所有元素的和,则m- 2020-06-02 …
关于矩阵的迹(trace)方阵A的迹定义为A的对角线元素的和,想请教:trace(A)能否通过B* 2020-06-12 …
java数组元素求和,求最大值和最小值.题目描述【题目描述】从键盘输入一组数据,然后请你用递归的方 2020-06-27 …
吃荤的怕有激素,吃素的怕有毒素,喝饮料怕有色素,喝水怕有有害元素。针对食品安全给人们带来的恐惧心理 2020-06-28 …
已知集合A={x|(x-1)(x-a)(x-a2)=0,a∈R}.(1)若集合A中只有一个元素,求 2020-07-09 …
科学家根据元素的和,把已发现的100多种元素按科学有序的排列起来.元素周期表是和化学的重要 2020-07-15 …
VB题求斐波那数列前20项奇数项之和第一项和第二项都是1从第三个元素开始,每个元素都是前两个元素的 2020-07-16 …