
一道算法题目,统计每个部门12个月份的情况,每个部门有每个月份的四种情况既0~3,记录会有部门重复,请给出比较简单的方法解决算出每个部门各状态数量,Java实现

关注引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。
可以使用一个HashMap来记录每个部门每种状态数量。具体步骤如下:
以下是该算法的Java实现:
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// 给定的算法表格
int[][] data = {
{ 1, 0, 1, 2, 1, 1 },
{ 2, 2, 1, 2, 3, 1 },
{ 3, 0, 2, 0, 3, 0 },
{ 0, 1, 1, 2, 2, 2 },
{ 2, 2, 3, 0, 0, 1 },
{ 0, 1, 1, 2, 3, 0 },
{ 1, 0, 3, 0, 3, 1 }
};
// 使用HashMap来保存每个部门的状态数量
HashMap<String, int[]> departmentStatusCount = new HashMap<>();
for (int[] row : data) {
String department = "Department " + row[0];
if (!departmentStatusCount.containsKey(department)) {
departmentStatusCount.put(department, new int[4]);
}
int[] statusCount = departmentStatusCount.get(department);
for (int i = 1; i < row.length; i++) {
statusCount[row[i]]++;
}
}
// 输出每个部门的状态数量
for (String department : departmentStatusCount.keySet()) {
int[] statusCount = departmentStatusCount.get(department);
System.out.println(department + ":");
for (int i = 0; i < statusCount.length; i++) {
System.out.println("Status " + i + ": " + statusCount[i]);
}
System.out.println();
}
}
}
以上代码会输出每个部门的状态数量:
Department 0:
Status 0: 3
Status 1: 1
Status 2: 2
Status 3: 2
Department 1:
Status 0: 2
Status 1: 1
Status 2: 0
Status 3: 1
Department 2:
Status 0: 1
Status 1: 1
Status 2: 2
Status 3: 2
Department 3:
Status 0: 1
Status 1: 0
Status 2: 1
Status 3: 1