import java.util.*;
public class Main {
	public static void main(String[] args){
      Scanner sc = new Scanner(System.in);
		// 整数の入力
		int a = sc.nextInt();
		
		if(a == 1){
		    System.out.println("Yes");
		}
		else
		{
		    int grid[] = new int[a];
		    
		    //準備
    		for(int i = 0; i < a; i++){
    		    grid[i] = sc.nextInt();
    		}
    		
    		//操作
    		for(int i = 0; i < a; i++){
    		    if(i == 0){
    		        if(grid[0] > grid[1] && grid[0] > 1){
    		            grid[0]--;
    		        }
    		    }
    		    else
    		    {
    		        if(grid[i] > grid[i-1] && grid[i] > 1){
    		            grid[i]--;
    		        }
    		    }

    		}
    		
    		//検査
    		boolean flg = true;
    		for(int i = 0; i < a; i++){
    		    if(i == 0){
    		        if(grid[0] > grid[1]){
    		            flg = false;
    		            break;
    		        }
    		    }
    		    else
    		    {
    		        if(grid[i] < grid[i-1]){
    		            flg = false;
    		            break;
    		        }
    		    }

    		}
    		
    		if(flg == true){
    		    System.out.println("Yes");
    		}
    		else
    		{
    		    System.out.println("No");
    		}
    	    
            
		}
		
	}
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz