leetcode-240-探索二次元マトリクスII(search a 2 ds matrix 2)-java


テーマとテスト
package pid240;
/*        II

             m x n    matrix         target。         :

                 。
                 。

  :

     matrix   :

[
  [1,   4,  7, 11, 15],
  [2,   5,  8, 12, 19],
  [3,   6,  9, 16, 22],
  [10, 13, 14, 17, 24],
  [18, 21, 23, 26, 30]
]

   target = 5,   true。

   target = 20,   false。



*/
public class main {
	
	public static void main(String[] args) {
		int[][] testTable = {{1,   4,  7, 11, 15},{2,   5,  8, 12, 19},
				{3,   6,  9, 16, 22},{10, 13, 14, 17, 24},{18, 21, 23, 26, 30}};
		int[] testTable2=new int[]{5,20};
		for(int i=0;i

解法1(成功,7 ms,速い)
行列の正対角線の両端から、彼らの2つの方向はすべて大きくなったり小さくなったりして、反対角線の両端から、方向は1つが大きくなって、1つが小さくなって、大きさによって、相応の方向に走って、行列の境界に出会ったり超えたりするまで
まず、(rows−1,0)の要素をxとし、与えられたtarget>xであれば、延行方向を右に探し、そうでなければ延列方向を上に探します.
    public boolean searchMatrix(int[][] matrix, int target) {
        int row=matrix.length;
        if(row==0){
        	return false;
        }
        int col=matrix[0].length;
        if(col==0){
        	return false;        	
        }
        //       
        int i=row-1;
        int j=0;
        while(i>=0 && j