import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @author xiaoxu
* @create 2022-08-30 20:05
*/
public class Main1 {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(reader.readLine());
String[] line = reader.readLine().split(" ");
reader.close();
int[] num=new int[n];
for (int i = 0; i <n ; i++) {
num[i]=Integer.parseInt(line[i]);
}
int max1=0,max2=0;
int index=0;
for(int i=1;i<n;i++){
int temp = Math.abs(num[i] - num[i - 1]);
if(temp>max1){
max2=max1;
max1=temp;
index=i-1;
}else{
max2=Math.max(max2,temp);
}
}
if(index==0||index==n-1){
System.out.println(max2);
}else{
int a=num[index];
int res1=0,res2=0;
num[index]=Math.abs(num[index+1]-num[index-1])/2+num[index-1];
for (int i = 1; i <n ; i++) {
res1=Math.max(res1,Math.abs(num[i]-num[i-1]));
}
num[index]=a;
if(index+1!=n-1){
num[index+1]=Math.abs(num[index+2]-num[index])/2+num[index];
for (int i = 1; i <n ; i++) {
res2=Math.max(res2,Math.abs(num[i]-num[i-1]));
}
}else{
res2=Integer.MAX_VALUE;
}
System.out.println(Math.min(res1,res2));
}
}
}