public class test {
static class Pair implements Comparable<Pair>{
public int s1;
public int s2;
public int sum = s1+s2;
public Pair(int s1, int s2) {
this.s1 = s1;
this.s2 = s2;
this.sum = s1+s2;
}
@Override
public int compareTo(Pair o) {
return this.sum-o.sum;
}
}
public static void main(String[] args) {
int[] arr1 = {1,3,5,8};
int[] arr2 = {2,5,8,9};
int K = 3;
System.out.println((func(arr1, arr2, K)));
}
public static List<List<Integer>> func(int[] arr1,int[] arr2,int K){
List<List<Integer>> list = new ArrayList<>();
PriorityQueue<Pair> queue = new PriorityQueue<>();
for(int i = 0;i<arr1.length;i++){
for(int j = 0;j<arr2.length;j++){
给定两个以升序排列的整型数组以及一个整数K,定义一对值(u,v),其中第一个元素来自数组1,第二个元素来自数组2,找出和最小的K对数组
这是一篇关于算法解析的博客,主要内容是如何在两个升序排列的整型数组中找到和最小的K对组合。解决策略是使用优先队列(堆)存储组合,循环K次从队列中取出最小和的元素,队列调整过程中需确保自定义类型的元素实现Comparable接口。
摘要由CSDN通过智能技术生成