首先输入一个正整数N(N <= 50),接下来输入N个数表示每个商品的价格(价格均是正整数,且小于等于10000)。如果存在第3便宜的商品,则输出这个价格是多少,否则输出-1。java代码
时间: 2024-10-07 16:05:30 浏览: 19
java 输入一个数字,反转输出这个数字的值(实现方法)
在Java中,我们可以使用优先队列(PriorityQueue)来解决这个问题。这里是一个完整的代码示例:
```java
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
// 创建一个堆来存储价格,并保证最小
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
// 输入并插入商品价格
for (int i = 0; i < N; i++) {
int price = scanner.nextInt();
minHeap.offer(price);
// 如果已经到达第三个元素,直接返回
if (minHeap.size() == 3) {
System.out.println(minHeap.poll()); // 返回第三个最小的元素
return;
}
}
// 没有第三个元素,输出 -1
System.out.println(-1);
}
}
```
这个程序首先读取输入的正整数N,然后遍历N次,每次读入一个价格并放入优先队列。当队列大小达到3时,就弹出并打印第一个元素(即第三便宜的价格),程序结束。如果没有满足条件的三个价格,最后输出-1。
阅读全文