如果一个有序队列 List 中有十个元素,要求确保每天多次取出的元素相同
第二天取有序队列中下一个元素,这样周而复始的循环
请问有没有简洁优雅的设计思路
如果一个有序队列 List 中有十个元素,要求确保每天多次取出的元素相同
第二天取有序队列中下一个元素,这样周而复始的循环
请问有没有简洁优雅的设计思路
|
JasonLawDec 11, 2022 via iPhone
1
如果第二天没有获取操作,第三天获取到的元素是第二个还是第三个?
|
|
4
@echooo0 在我看来,这其实就是一个循环链表,只需要记录当前所在的节点 current 就好,节点还会跟日期关联。
如果当前日期和当前节点日期一样,那就返回当前节点,而且不移动当前节点。 如果当前日期和当前节点日期不一样,执行 current = current.next ,然后关联当前节点和当前时间,返回当前节点。 |
|
hefishDec 11, 2022
5
感觉可以用两个指针来实现。
|
|
6
(当前日期距离 1970-01-01 之间天数只差 - offset ) % 队列大小, 怎么样
|
|
HurrianceDec 12, 2022 via iPhone
7
觉得 6 楼的可行
|
|
WaldenHorizonDec 12, 2022
8
同 6 楼,第一反应就是用余数,如果后续队列元素数量变化,可以手动修改偏移将当天对齐到变化前
|
|
luozicDec 12, 2022
9
方案越简洁越好,6 楼的不错
|
|
RightHandDec 12, 2022 via Android
10
linkedHashMap 配合 list 不好吗?
|
|
xuanbgDec 12, 2022
11
这不就是个时间轮吗?轮子每天转 1 格,指针永远指向一个位置。
|
|
13
还有一点我想指出,这个需求跟队列没有任何关系,感觉很多人对队列的理解都错得很严重。
来自 Wikipedia: In computer science, a queue is a collection of entities that are maintained in a sequence and can be modified by the addition of entities at one end of the sequence and the removal of entities from the other end of the sequence. |
|
tusjDec 13, 2022
14
13 楼说得对,这和队列有啥关系?就 n 个固定值,来回取。没有 push ,也没有 pop 啊?
|