一道算法题目,统计每个部门12个月份的情况,每个部门有每个月份的四种情况既0~3,记录会有部门重复,请给出比较简单的方法解决算出每个部门各状态数量,Java实现
简单算法统计各单位12个月份的情况
一道算法题目,统计每个部门12个月份的情况,每个部门有每个月份的四种情况既0~3,记录会有部门重复,请给出比较简单的方法解决算出每个部门各状态数量,Java实现
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
10条回答 默认 最新
关注 引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。
可以使用一个HashMap来记录每个部门每种状态数量。具体步骤如下:
- 创建一个HashMap,用来保存每个部门的状态数量。Key为部门名,Value为一个长度为4的数组,用来保存每种状态的数量。
- 遍历给定的算法表格,对于每一行数据:
a. 检查该部门是否已存在于HashMap中,若不存在,则将该部门添加到HashMap中,并将其对应的值初始化为长度为4的数组,每个元素初始值为0。
b. 根据每个月份的情况,将该月份的状态数量加到部门对应的值中。 - 遍历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
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
- ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
- ¥30 NIRfast软件使用指导
- ¥20 matlab仿真问题,求功率谱密度
- ¥15 求micropython modbus-RTU 从机的代码或库?
- ¥15 django5安装失败
- ¥15 Java与Hbase相关问题
- ¥15 后缀 crn 游戏文件提取资源
- ¥20 bash代码推送不上去 git fetch origin master #失败了
- ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开