华为 4.10 第三题 求解
import java.util.*;
public class Main3{
public static int f(int[][] arr,int n,int m,int x,int y,int z,int w) {
int a=0,b=0,c=0,d=0;
if(x==z&&y==w) {
return 1;
}
if(x-1>=0&&arr[x-1][y]>arr[x][y]) {
a=f(arr,n,m,x-1,y,z,w);
}
if(x+1<=n-1&&arr[x+1][y]>arr[x][y]) {
b=f(arr,n,m,x+1,y,z,w);
}
if(y-1>=0&&arr[x][y-1]>arr[x][y]) {
c=f(arr,n,m,x,y-1,z,w);
}
if(y+1<=m-1&&arr[x][y+1]>arr[x][y]) {
d=f(arr,n,m,x,y+1,z,w);
}
return a+b+c+d;
}
public static void main(String[] args){
Scanner in =new Scanner(System.in);
while(in.hasNext()){
int n=in.nextInt();
int m=in.nextInt();
int[][] arr=new int[n][m];
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
arr[i][j]=in.nextInt();
}
}
int x=in.nextInt();
int y=in.nextInt();
int z=in.nextInt();
int w=in.nextInt();
System.out.println(f(arr,n,m,x,y,z,w));
}
}
}
#华为##笔试题目#
public class Main3{
public static int f(int[][] arr,int n,int m,int x,int y,int z,int w) {
int a=0,b=0,c=0,d=0;
if(x==z&&y==w) {
return 1;
}
if(x-1>=0&&arr[x-1][y]>arr[x][y]) {
a=f(arr,n,m,x-1,y,z,w);
}
if(x+1<=n-1&&arr[x+1][y]>arr[x][y]) {
b=f(arr,n,m,x+1,y,z,w);
}
if(y-1>=0&&arr[x][y-1]>arr[x][y]) {
c=f(arr,n,m,x,y-1,z,w);
}
if(y+1<=m-1&&arr[x][y+1]>arr[x][y]) {
d=f(arr,n,m,x,y+1,z,w);
}
return a+b+c+d;
}
public static void main(String[] args){
Scanner in =new Scanner(System.in);
while(in.hasNext()){
int n=in.nextInt();
int m=in.nextInt();
int[][] arr=new int[n][m];
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
arr[i][j]=in.nextInt();
}
}
int x=in.nextInt();
int y=in.nextInt();
int z=in.nextInt();
int w=in.nextInt();
System.out.println(f(arr,n,m,x,y,z,w));
}
}
}
#华为##笔试题目#