思路看注释
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] arguements = reader.readLine().split(" ");
int m = arguements[0].charAt(0) - '0';
int n = arguements[1].charAt(0) - '0';
int k = arguements[2].charAt(0) - '0';
int[][] a = new int[n][m];
String[] elements;
for (int i = 0; i < n; i++){
elements = reader.readLine().split(" ");
for(int j = 0; j < m; j++){
a[i][j] = elements[j].charAt(0) - '0';
}
}
if(isContains(a,k)){
System.out.print("Yes");
}else{
System.out.print("No");
}
}
public static boolean isContains(int[][] arr,int target){
//从右上角开始
int colIndex = arr[0].length-1;
int rowIndex = 0;
while(true){
if(arr[rowIndex][colIndex]==target){
//相等,找到了返回true
return true;
}
if(arr[rowIndex][colIndex]>target){
//大于目标值,列向左移动
colIndex--;
}
if(arr[rowIndex][colIndex]<target){
//小于目标值,行向下移动
rowIndex++;
}
if(colIndex<0||rowIndex>arr.length-1){
//越界退出
break;
}
}
return false;
}
}
京公网安备 11010502036488号