#include <bits/stdc++.h>
int max(int a, int b) { return a > b ? a : b; }
int min(int a, int b) { return a > b ? b : a; }
int a[111];
int b[111];
int n;
int ln;
void make(int i) {
  ln = 0;
  for (int j = 0; j < n; j++)
    if (i != j) b[ln++] = a[j];
}
int result() {
  int mn = -1e9;
  for (int i = 0; i < ln - 1; i++) mn = max(mn, b[i + 1] - b[i]);
  return mn;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", a + i);
  int ans = 1e9;
  for (int i = 1; i < n - 1; i++) {
    make(i);
    ans = min(ans, result());
  }
  printf("%d", ans);
}
