操作次数和内存使用方面都能达到最优效率
您正在要求通常相互抵触的两种优化。例如,更快的速度==更多的内存。
话虽如此,我可能会选择(双)链表来存储我的蛇,因为在前端或尾部进行删除或添加非常便宜,并且在游戏中,更快速度比更少内存更可取(在合理范围内,但我想知道您的蛇必须有多长才会遇到内存问题...远远超出可玩范围...和一些其他问题)。
当然,我假设您已经测量并发现标准的基于数组的方法太慢了(这似乎不太可能)。
您可以通过两种方式旋转数组:
links.unshift(links.pop()); or
links.push(links.shift());
对于从ES3版本开始的任何Javascript版本:
links.unshift(links.pop());
links.unshift(links.pop());
- dandavis