public static void Main(string[] args)
Console.WriteLine(DoCalc(new int[] { 138, 0, 2, 110 }));
Console.WriteLine(DoCalc(new int[] { 138, 0, 1, 2, 110 }));
Console.WriteLine(DoCalc(new int[] { 0,1,2,3,4 }));
Console.WriteLine(DoCalc(new int[] { }));
public static int DoCalc(int[] array)
.Select((item, index) => new { item, diff = item - index })
.Pairwise((first, second) => new { first, second })
.TakeUntil(z => z.first.diff != z.second.diff).LastOrDefault();
if (result.first.diff == result.second.diff)
return result.second.item + 1;
return result.first.item + 1;