トピック
回答
配列
から、右上隅の配列から更新を開始できることがわかります。この数値がターゲットと等しい場合は、直接trueを返します。ターゲットよりも小さい場合は、その下の数値xが右上隅の数xの場合、それよりも大きい。次に、次の行に移動する必要があります。より大きい場合、xの左側の数はそれよりも小さいため、左に移動する必要があります。 。
コード
class Solution {
public:
bool searchArray(vector<vector<int>> array, int target) {
if (array.empty() || array[0].empty()) return false;
int i = 0, j = array[0].size() - 1;
while (i < array.size() && j >= 0) {
if (array[i][j] == target) return true;
if (array[i][j] < target) i++;
else j--;
}
return false;
}
};