将喊7游戏中,游戏参与者喊“过”的次数存储在数组中。给定一个长度为N的数组,存储了打乱顺序的每个人喊“过”的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人喊“过”的次数。乱序数组 0,1,0,输出1,0,0 。输出java
时间: 2024-09-12 20:04:03 浏览: 30
在Java中,这个问题可以通过构建一个哈希表或者字典来解决。首先遍历输入数组,将每个人的喊“过”次数作为键(key),他们的位置作为值(value)存入哈希表。然后根据原始的位置i来获取对应的实际次数。
下面是一个简单的Java方法来实现这个过程:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
int[] input = {0, 1, 0}; // 输入的乱序数组
int n = input.length; // 数组长度
// 创建一个HashMap来存储喊过次数和玩家编号的关系
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
map.put(i + 1, input[i]); // 玩家编号从1开始
}
// 根据哈希表中的值还原数组
int[] output = new int[n];
for (int i = 0; i < n; i++) {
output[i] = map.get(i + 1); // 获取位置i的正确次数并放入新数组
}
// 输出结果
for (int num : output) {
System.out.print(num + " ");
}
}
}
```
运行这段代码,你会得到输出 `1 0 0`,这就是按照原数组位置重构的数组。
阅读全文