2016-11-17 33 views
0

我得到了一個動態大小的數組像這樣 [2,5,3,4,6,7]一個運算需要參考的鄰居在陣列

現在我想reffer的左側和右側元素的鄰居。 例如我得到的索引= 3

這將是值爲「4」的元素。爲了得到正確的鄰居,我可以只是讓

指數+ 1個MOD長度= 4

如果我是在右端,說指數= 5,我得到5 + 1 MOD 6 = 0。所以這需要數組中的第一個元素。這就是我想要的。現在我也想和左鄰居一樣。我怎樣才能做到這一點?

如果我得到索引= 0,我有索引-1 = -1。如何通過一次算術運算得到右側元素的索引號?這樣我就可以每次在每個索引上計算這個操作。

非常感謝!

回答

1

(長度+索引 - 1)MOD長度應該是關鍵。

所以,當長度= 6:

  • 如果index = 0 left_index =(6 + 0 - 1)MOD 6 = 5
  • 如果index = 4 left_index =(6 + 4 - 1) MOD 6 = 3 ...