在每行、每列递增的二维数组中找出给定的target 的位置

来源:互联网 发布:鼠标 淘宝店推荐 编辑:程序博客网 时间:2024/05/20 05:29

描述:给定一个 n*n 的二维数组,数组的每行 、每列递增。现在需要找出 某个 数字 target ,如果存在则找出其位置。

具体代码:

public class fingTargetFromArr {public static void main(String args[]){int[][] arr = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};System.out.println(findTarget(arr,6));}//利用每行,每列递增的性质,饿哦们可以从二维数组左下角的 6 或者 右上角的 9 为起始点public static boolean findTarget(int[][] arr,int tar){int rows = arr.length;//数组的 行数int cows = arr[0].length;//数组的列数int i = 0;int j = cows - 1;while( i < rows && j >= 0){int temp = arr[i][j];//中间变量if(temp == tar){System.out.println("target:" + tar +" in cows:" + (i+1) + " " +"rows:" + (j + 1));return true;}elseif(temp > tar)j--;elsei++;}System.out.println("Not Found!");return false;}}



0 0
原创粉丝点击