1. 程式人生 > >在行列均遞增的矩陣中找一個數(要求比較次數不超過行數+列數)

在行列均遞增的矩陣中找一個數(要求比較次數不超過行數+列數)

color 如果 rgs != date else pan string creat

/**
 * @author:(LiberHome)
 * @date:Created in 2019/2/28 21:22
 * @description:
 * @version:$
 */
/*已知一個二維數組A[m+1][n+1],設計一個算法找出滿足A[i][j]=x的i和j的值,
這裏的x要求滿足同一行比下一列的元素小,同一列比下一行的元素小,要求比較次數不超過m+n*/
/*emmm樓上題意理解錯了,,,真實丟臉,,,*/
    /*A[i][j]<=A[i][j+1],A[i][j]<=A[i+1][j],0<=i<=m;0<=j<=n 這句話的含義是每行的元素遞增,每列的元素遞增
*/ /*所以,,正解的思路如下*/ /*首先,從第0行最後一列開始,如果這個元素小,不墨跡行數+1*/ /*如果這個元素更大那麽列數-1*/ public class page0702 { public static void main(String[] args) { int[][] arrs={{1,2,3,4},{2,4,6,8}}; int flag=6; findx(arrs,flag); } private static void findx(int[][] arr,int num) {
int i=0; int j=arr[i].length-1; while (arr[i][j]!=num&&(i<arr.length-1)){ if (arr[i][j]<num){ i++; }else { j--; } } System.out.println("i= "+i+" j= "+j); } }

在行列均遞增的矩陣中找一個數(要求比較次數不超過行數+列數)