java - 在 ArrayList (Java) 中搜索 Key 的总和
问题描述
我需要搜索在我的 ArrayList 中是否存在与传递给方法的给定数字 X 相对应的两个数字的总和。
我在两个不同的文件中有这些数字——一个包含数字,另一个包含键。
我要做的是:
- 用这些数字填充 2 个不同的 ArrayList
- 用我必须搜索总和的数字排序一个,所以它是有序的
然后我不知道如何检查给定的键是否是数组列表中包含的两个数字的总和。有什么建议吗?我发布了我的部分代码,只是最后一次尝试。
在这里,我对 ArrayList 进行排序并在其上调用方法 elementIsContained,并传递“sums.get(i)”,这是我必须在另一个 ArrayList 中搜索的数字。
case "-a":
buffer.mergeSort(arrList, 0, arrList.size()-1);
for(int i=0; i < sums.size(); i++){
elementIsContained(arrList, 0, arrList.size()-1, sums.get(i) );
}
break;
然后我试图以二分法的方式搜索总和,但我不知道如何对所有组合求和以找到关键
我正在考虑避免搜索大于键的项目并搜索其他项目,但是..我不知道,我没有想法!
解决方案
让我们看看操作流程(一种可能的解决方案)
初始化一个HashSet<Integer>SET,将包含Numbers的列表中的所有数字插入到SET中。
开始一个循环并迭代包含键的列表。因此,对于每次迭代,您都有一个 KEY。
- if(Set.contains(Sum-KEY) 那么你有 2 个数字的组合,使得总和等于 KEY。
推荐阅读
- android - Hilt:ApplicationComponent 中提供的对象何时被销毁?
- html - HTML & 区分大小写
- c++ - OpenGL Spaceship 推进器在底部不是圆形的
- flutter - 获得异常的 A RenderFlex 在颤动的底部溢出 203 像素
- arduino - Arduino Nano 程序员没有响应
- python - 在 Python 中读取 SQL 文件以通过 databricks 对 JDBC 运行
- azure - Azure PIM PowerShell 脚本
- php - Laravel 授权策略使用微风仅显示用户创建的对象
- swift - 如何在 CGRect 中添加文本标签?
- node.js - 使用 express js 未定义用户名