1. 程式人生 > >Java 一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。判斷陣列中是否含有某個整數。

Java 一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。判斷陣列中是否含有某個整數。

開始刷牛客題目:

思路:題目已知:二維陣列由上到下,由左到右遞增的規律,那麼選取右上角(或者左下角)的元素a[row][col]與target進行比較,當target小於元素a[row][col]時,那麼target必定在元素a所在行的左邊,即col--;當target大於元素a[row][col]時,那麼target必定在元素a所在列的下邊,即row++;

public class Solution {

    public boolean Find(int target, int [][] array) {
    int row = 0;
        int col = array[0].length-1;
        while(row<=array.length-1&&col>=0){
            if (target==array[row][col])
                return true;
            else if (target >array[row][col])
                row++;
                else
                    col--;
            }
            return false;
        }

    }