我的任务是找到四个唯一元素,其总和已定义。所以我有输入数据:n个元素的数据数组,元素可以重复,'s'是总和。我有两个循环,第一个 i 在值 [0, n-1] 中,第二个 j 在 [i+1, n] 中。我保存在 Map 中的所有唯一元素对,其中键是总和,值是由该总和组成的可能元素的集合。结果是输入数据数组的四个唯一元素的集合。我在第二个周期中执行的所有操作:
我在这项任务中遇到了内存限制,但我克服了它。时间限制为 O(n^2)。据我了解,我做了一些额外的操作并保存了一些不必要的数据。我创建了两个对象 Fourths 和 Pairs ,但它们内部只有原始字段,所以我认为其中没有什么交易
这是我的java代码:
public class SunForthFAIL {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
int s = Integer.parseInt(reader.readLine());
int[] data = new int[n];
Set<Forths> result = new HashSet<>();
Map<Integer, Set<Pair>> history = new HashMap<>();
StringTokenizer …Run Code Online (Sandbox Code Playgroud)