我有一组输入的日志记录,其中包含属性、记录、时间和权重。
我需要一个输出,其中前 5 条记录应基于时间,接下来的 5 条记录应基于权重排序。不允许重复。
Java 中是否有数据结构或任何类型的算法来解决此类问题。
输入
Record Time Weightage
R1 11:40:52 1
R2 11:39:23 2
R3 11:39:21 2
R4 11:38:44 5
R5 11:37:00 3
R6 11:36:12 3
R7 11:35:12 1
R8 11:34:00 1
R9 11:33:04 5
R10 11:32:02 4
R11 11:31:44 3
R12 11:30:12 2
R13 11:29:02 5
R14 11:28:28 6
R15 11:27:18 4
R16 11:26:19 6
R17 11:25:12 7
R18 11:24:03 5
R19 11:23:03 4
R20 11:22:05 4
R21 11:21:06 6
R22 11:20:00 4
R23 11:19:00 9
输出
Record Time Weightage
R1 11:40:52 1
R2 11:39:23 2
R3 11:39:21 2
R4 11:38:44 5
R5 11:37:00 3
R23 11:19:00 9
R17 11:25:12 7
R14 11:28:28 6
R16 11:26:19 6
R21 11:21:06 6
R6 11:36:12 3
R7 11:35:12 1
R8 11:34:00 1
R9 11:33:04 5
R10 11:32:02 4
R13 11:29:02 5
R18 11:24:03 5
R15 11:27:18 4
R19 11:23:03 4
R20 11:22:05 4
R11 11:31:44 3
R12 11:30:12 2
R22 11:20:00 4
最佳答案
如我所见,该列表按时间
排序。
将另一个属性添加到列表中,picked
(例如)作为 boolean 值,并最初将所有属性设置为 false。
如果空间没有问题,请复制数据并根据 weight
对其进行排序。
现在,从 list1(按时间排序)中选择第 1 个 5,并设置它们的 picked
属性。为真。现在,开始从 list2 中挑选,并检查您正在挑选的记录,如果它的 picked
值为 false 或者不在 list1 中。 (如果它的 true
,请不要选择这个)。当您从该列表中选择完 5 项后,从列表 1 中的第 6 项继续,同时检查列表 2 中的 picked
属性。要检查 picked
值,请使用 record_no
属性。
关于java - 按时间和权重对记录进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517387/