首页 > 试题广场 >

给定一个整数数组,判断其中是否有3个数和为N

[编程题]给定一个整数数组,判断其中是否有3个数和为N
  • 热度指数:4294 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
给定一个整数数组,判断其中是否有3个数和为N

输入描述:
输入为一行
逗号前为一个整数数组,每个元素间用空格隔开;逗号后为N


输出描述:
输出bool值
True表示存在3个和为N的数
False表示不存在3个和为N的数
示例1

输入

1 2 3 4 5,10

输出

True

备注:
数组长度不超过2000,所以数均为int范围的正整数
头像 laglangyue
发表于 2020-06-05 13:31:57
固定两个,另一个游标。利用hash查找可能快一些。hash查找的思路是:先遍历一遍查找,把N-ints[i]作为key,value是arraylist,存放下标,直接使用下标作为value不能解决hash冲突,然后双循环,可以利用排序剪枝当ints[i]+ints[j]>N,就可以终止循环了。 展开全文
头像 bao_hu_yuan_zhang
发表于 2024-02-20 11:17:20
#include <iostream> #include <vector> #include <unordered_map> #include <stdio.h> using namespace std; int main() { int 展开全文

热门推荐

通过挑战的用户

查看代码