-
查找数对 在包含N
个正整数的数组中快速找出两个数字,让这两个数字之和等于M,返回两个数字中的任一个即可,如找不到这返回-1。 1)请完成find
的代码实现(C++或Java),尽可能提高算法的时间空间复杂度。 C++:
int find(int M, int N, int[] a) {
…
}
Java:
int find(int M, int[] a) {
…
}
例如: 当输入为 M=11 N=9 a = { 8, 4, 1, 6, 7, 4, 9, 6,
4}
返回为4 或7
2)设计测试用例测试find 函数 ...
阅读题目
问答题
经典指数
-
-
-
-
-
考虑以下二分查找的代码:
#include <stdio.h>
int bsearch(int array[], int n, int v)
{
int left, right, middle;
left = 0, right = n - 1;
while (left <= right) {
middle = left + (right - left) / 2;
if (array[middle] > v ) {
right = middle;
} else if (array[middle] < v) {
left = middle;
} else {
return middle;
}
}
return -1;
}
对于输入array为:{2, 6, 8, 10, 13, 25, 36, 45, 53, 76, 88, 100, 127}, n
= 13 ...
阅读题目
单选题
经典指数
-
-
-
-
扫描后移动端查看
相关标签
同类标签
|
微信公众号
|
|
欢迎加入,一起群聊
|