您的位置:首页 > 其它

给定一数组,输出满足2a=b(a,b代表数组中的数)的数对,要求时间复杂度尽量低。

2017-01-14 12:03 281 查看
//时间复杂度O(n),空间复杂度O(n)
void findSequence(int* arr, int len) {
int* hashtable = new int[RANGE];
memset(hashtable, 0, RANGE);

for (int i = 0; i < len; ++i) {
hashtable[arr[i]] = 1;
}

cout << "(a,b): ";
for (int i = 0; i < len; ++i) {
if (arr[i] * 2 < len && hashtable[arr[i] * 2]) {
//去重
hashtable[arr[i]] = 0;
cout << "( " << arr[i] << " , " << arr[i] * 2 << " ) ";
}
if (i % 10 == 0) {
cout << endl;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐