package com.anuragkapur.misc;
/**
* @author anuragkapur
*/
public class CircularArrayRelativeIndices {
public boolean hasCycle(int a[]) {
if (a == null) {
return false;
}
if (a.length < 2){
return true;
}
int current = 0;
for (int i = 0; i < a.length; i++) {
int temp = current;
current = (a[current] + current) % a.length;
if (current < 0) {
current += a.length;
}
a[temp] = 0;
if (current == 0 && i < a.length-1) {
return false;
}
}
return current == 0;
}
}