import java.util.*;
import java.math.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int[] arr = new int[n];
            for(int i=0;i<n;i++){
                arr[i] = in.nextInt();
            }
            //保存所有的最大间隔
            List<Integer> ans = new ArrayList<>();
            for(int i=1;i<n;i++){
                //获取删除当前元素后的数组
                List<Integer> currList = removeList(arr,i);
                //记录此时数组的最大间隔
                int maxDiff = 0;
                for(int j=1;j<currList.size();j++){
                    int diff = currList.get(j)-currList.get(j-1);
                    maxDiff=Math.max(maxDiff,diff);
                }
                ans.add(maxDiff);

            }
            Collections.sort(ans);
            System.out.println(ans.get(0));
        }
    }
    public static List<Integer> removeList(int[] arr,int index){
        List<Integer> res = new ArrayList<>();
        for(int i=0;i<arr.length;i++){
            if(i!=index) res.add(arr[i]);
        }
        return res;
    }
}