我有这个圆形数组,我需要以某种方式排列它,以便每个元素的两个相邻元素都发生变化。
例子:
1 2 3 4 5
成为
3 1 4 2 5
限制是数组至少需要5个元素,否则不可能。
长期以来一直试图解决它,我确定它有一个名字,但我没有运气在网上找到答案。
最佳答案
这其实很容易解决,你只需要找到一些对数组中奇数和偶数个元素都有效的策略:
首先选择偶数位置的所有数字,然后选择奇数位置的第一个数字,接着选择奇数位置的最后一个数字,最后选择奇数位置的其余数字。
12345 变为 13524,因此它适用于奇数个元素。
123456 变为 135264,因此它适用于偶数个元素。
0123456789 变成 0246819357,另一个例子。
关于arrays - 排列数组使得所有邻居都被改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49407586/