蓝桥杯 java 车厢
时间: 2024-01-14 11:21:43 浏览: 164
根据提供的引用内容,以下是关于蓝桥杯Java车厢的介绍和示例:
蓝桥杯是中国最具影响力的计算机竞赛之一,其中有一道经典题目是关于车厢的排列问题。这道题目要求根据给定的车厢排列顺序,判断是否能够通过调整车厢的顺序使得所有车厢按照升序排列。
以下是一个示例代码,用于判断给定的车厢排列是否能够按照升序排列:
```java
import java.util.Stack;
public class TrainCarriages {
public static boolean isSortable(int[] carriages) {
Stack<Integer> stack = new Stack<>();
int target = 1;
for (int i = 0; i < carriages.length; i++) {
if (carriages[i] == target) {
target++;
} else {
while (!stack.isEmpty() && stack.peek() == target) {
stack.pop();
target++;
}
stack.push(carriages[i]);
}
}
while (!stack.isEmpty() && stack.peek() == target) {
stack.pop();
target++;
}
return stack.isEmpty();
}
public static void main(String[] args) {
int[] carriages = {4, 3, 2, 1};
boolean sortable = isSortable(carriages);
System.out.println("The carriages are sortable: " + sortable); // 输出:The carriages are sortable: true
}
}
```
该示例代码使用了栈来模拟车厢的排列过程,通过遍历车厢数组,将车厢按照升序排列的顺序入栈,并判断是否能够按照升序排列。如果最后栈为空,则表示可以按照升序排列,否则不能。
阅读全文