【发布时间】:2016-01-19 20:28:15
【问题描述】:
我有一个无法有效解决的问题。 我需要做的是: 我在数组中有一个起始位置(在我的情况下是列表),我也有一个偏移量。 int 类型的偏移量:
当偏移量 > 0 时,我有这个来计算新位置:
if (currentPosition + offset < lenght)
{
return currentPosition + offset;
}
return (currentPosition + offset)%lenght;
问题是当偏移量
for (int i = 0; i < offset * -1; i++)
{
currentPosition -= 1;
if (currentPosition == -1)
{
currentPosition = lenght - 1;
}
}
return currentPosition;
但是这个解决方案真的很慢。 各位有什么想法吗。 提前谢谢你。
【问题讨论】:
-
偏移量可以大于+7还是小于-7?另外,这总是 8 元素数组还是长度可以变化?
-
数组的长度可以变化,偏移量可以大于数组的长度。