在行列均遞增的矩陣中找一個數(要求比較次數不超過行數+列數)
阿新 • • 發佈:2019-03-01
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); } }
在行列均遞增的矩陣中找一個數(要求比較次數不超過行數+列數)