2017-07-16 117 views
1

推測我已經給定的起始索引和結束索引,我需要轉化這些正值,並開始索引移調爲0移調偏移

對於實施例:

(-5, -2) -> (0, 3) 
(-2, 3) -> (0, 5) 
(1, 10) -> (0, 9) 

我可以使用一對if來獲得結果,但有沒有一個優雅的單線程來做到這一點?

+1

究竟是什麼邏輯?你是不是隻減去兩者的第一個「索引」? – UnholySheep

+0

如果你真的需要一個班輪,你可能想要去[Code Golf](https://codegolf.stackexchange.com/)。 –

回答

0

使用Math.abs找到最後一個元素的索引:

int adjustedFirst = 0; 
int adjustedLast = Math.abs(first-last); 
+0

根據提供的示例,不需要'Math.abs' - 它只是'int adjustedLast = last - first;' – UnholySheep

+0

@UnholySheep出於某種原因,我的印象是第一個索引可能大於第二個索引指數。如果情況並非如此,那麼你是對的。 – Eran

0

從BOT指數減去第一指標

int secondIndex = secondIndex - firstIndex; 
int firstIndex = firstIndex - firstIndex; 

計算secondIndex第一,你正在改變firstIndex值。