在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。


如圖:

只能從左下角或者從右上角入手,輸入的數大於當前數就往右走,小於當前的數就往上走

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; //沒有找到
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM