アルゴリズムの問題解


タイトルの説明
1つの2 D配列(各1 D配列の長さは同じ)では、各行は左から右に増加した順にソートされ、各列は上から下に増加した順にソートされます.関数を完了し、このような2次元配列と整数を入力して、配列にその整数が含まれているかどうかを判断してください.
考え方1
二重forループを利用してすべての要素を巡るだけで、少しlow、次です.
構想の2:テーマの中の要素は一定の順序があるため、どうしてこのように考えないで、左下の第1の要素tempを見て、目標の要素targetを比較して、目標の要素が大きい時、tempの所在する列は比べなくなりました;ターゲット要素が小さい場合、tempの行は比べものになりません.等しいときに見つかります.
class Solution {
public:
    bool Find(int target, vector > array) {
        int height=array.size();
        int width=array[0].size();
        int i=height-1;
        int j=0;
        while(i>=0&&jarray[i][j])
            {
                j++;
            }
            else
            {
                return true;
            }
        }
        return false;
    }
};