#include <bits/stdc++.h>
int n, maxi[1000] = {0}, arr[1000] = {0};
int del(int x) {
  int i, temp_max;
  temp_max = 0;
  for (i = 1; i <= n - 1; i++) {
    if (i != x) {
      if ((arr[i] - arr[i - 1]) > temp_max) temp_max = (arr[i] - arr[i - 1]);
    } else {
      if ((arr[i + 1] - arr[i - 1]) > temp_max)
        temp_max = (arr[i + 1] - arr[i - 1]);
      i++;
    }
  }
  return temp_max;
}
int main() {
  int i, min = 99999;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
  }
  for (i = 1; i < n - 1; i++) {
    maxi[i] = del(i);
  }
  for (i = 1; i < n - 1; i++) {
    if (maxi[i] < min) min = maxi[i];
  }
  printf("%d\n", min);
  return 0;
}
