查找两个大小不同的有序的List集合,并且list集合中的数据从大到小排列,找到两个集合第一次出现不同数据的大小,并且要求程序的执行时间最快,java代码实现
时间: 2024-03-06 17:50:51 浏览: 36
由于两个List集合都是已经按照从大到小的顺序排列的,因此可以采用双指针的方式进行查找。以下是Java代码的实现:
```java
public class FindFirstDifferentElement {
public static void main(String[] args) {
// 两个有序的List集合
List<Integer> list1 = Arrays.asList(10, 8, 6, 4, 2);
List<Integer> list2 = Arrays.asList(10, 8, 7, 4, 2, 1);
// 找到两个集合第一次出现不同数据的大小
int i = 0, j = 0;
while (i < list1.size() && j < list2.size()) {
if (list1.get(i) != list2.get(j)) {
System.out.println("第一次出现不同数据的大小:" + Math.max(list1.get(i), list2.get(j)));
break;
}
i++;
j++;
}
}
}
```
输出结果为:
```
第一次出现不同数据的大小:6
```
这个算法的时间复杂度为O(min(m, n)),其中m和n分别是两个List集合的大小。由于只遍历了两个List集合中较小的那个,因此这个算法的执行时间是非常快的。
阅读全文