如何实现循环循环列表并计算元素的访问请求?
2022-09-03 17:13:35
场景:
对于包含 3 个元素的列表:
[A, B, C]
您可以根据需要多次循环访问它。
并且还有一个附加的计数功能,记录每个元素的访问计数。
例如,如果访问它 7 次,应返回:
[A, B, C, A, B, C, A]
并且每个元素的访问计数如下所示:
+–––––––––––+–––––––––––––––+
| Element | Access count |
+–––––––––––––––––––––––––––+
| A | 3 |
+–––––––––––––––––––––––––––+
| B | 2 |
+–––––––––––––––––––––––––––+
| C | 2 |
+–––––––––––+–––––––––––––––+
添加另一个附加函数,允许调用方指定应筛选的元素列表。仍然使用7次访问作为示例,过滤:[C]
[A, B, A, B, A, B, A]
+–––––––––––+–––––––––––––––+
| Element | Access count |
+–––––––––––––––––––––––––––+
| A | 4 |
+–––––––––––––––––––––––––––+
| B | 3 |
+–––––––––––––––––––––––––––+
| C | 0 |
+–––––––––––+–––––––––––––––+
随后的调用应始终获取访问计数较低的调用。模拟负载平衡的访问计数实现。因此,如果第二个调用方尝试访问它 10 次,则应返回:getNextOne()
[C, C, C, B, C, A, B, C, A, B, C, A]
+–––––––––––+–––––––––––––––+
| Element | Access count |
+–––––––––––––––––––––––––––+
| A | 7 |
+–––––––––––––––––––––––––––+
| B | 6 |
+–––––––––––––––––––––––––––+
| C | 6 |
+–––––––––––+–––––––––––––––+