如圖:
只能從左下角或者從右上角入手,輸入的數大於當前數就往右走,小於當前的數就往上走
class Solution
{
public bool Find(int target, int[][] array)
{
int rowCount = array.GetLength(0);//獲取行的長度
int colCount = array[0].Length;//獲取列的長度 說“每個一維數組的長度相同” 所以取哪一個一維數組的長度都無所謂
int num = 0;//這里是從左下角下手的,初始化為第一個
for (int i = rowCount - 1; i >= 0 && num < colCount;)//這里num < colCount是為了防止數組越界
{
if (array[i][num] == target) //相等就返回true 找到
{
return true;
}
if (target > array[i][num])//如果輸入的數大於當前數就往右走下一個 num++ 進入下一個循環
{
num++;
continue;
}
if (target < array[i][num])//如果輸入的數小於當前數就往上走i-- ,num不變,進入下一個循環
{
i--;
continue;
}
}
return false; //沒有找到
}
}