[劍指offer][01]二維數(shù)組中的查找

題目描述:

· 在一個(gè)二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請(qǐng)完成一個(gè)函數(shù),輸入這樣的一個(gè)二維數(shù)組和一個(gè)整數(shù),判斷數(shù)組中是否含有該整數(shù)。

解題思路:

· 采用二分查找法,時(shí)間復(fù)雜度為O(max(m,n))。

· 先將給定的值key與二維數(shù)組右上角的元素比較:若相等,則返回true;若key小于它,則最后一列的元素肯定都大于key,此時(shí)可以刪除掉最后一列;而若key大于它,則第一行的元素肯定都小于key,此時(shí)可以刪除掉第一行,依次向下比較,如果比較到了左下角的元素,還沒(méi)有發(fā)現(xiàn)等于key的,則返回fasle。

二維數(shù)組中的查找
參考代碼
bool Find(int *arr, int rows, int cols, int key)
{
    int row = 0;
    int col = cols - 1;
    if ((arr != NULL) && (rows > 0 && cols > 0))//判斷是否是空數(shù)組
    {
        while (row<rows&&col >= 0)//循環(huán)直到排除完
        {
            if (arr[row*cols + col] == key)//右上角等于key
            {
                return true;
            }
            else if (arr[row*cols + col] > key)
                --col; //右上角>key,剔除一列
            else
                row++;//否則換下一行
    }
        return false;//未找到
}
參考鏈接

【劍指offer】二分查找二維數(shù)組 | 經(jīng)典面試題——二維數(shù)組查找

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目:在一個(gè)二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請(qǐng)完成一個(gè)函數(shù),輸...
    minningl閱讀 516評(píng)論 0 0
  • 數(shù)組 記錄《劍指offer》中所有關(guān)于數(shù)組的題目,以及LeetCode中的相似題目 相關(guān)題目列表 說(shuō)明 由于簡(jiǎn)書...
    wenmingxing閱讀 1,592評(píng)論 1 12
  • 前言 2. 實(shí)現(xiàn) Singleton 3. 數(shù)組中重復(fù)的數(shù)字 4. 二維數(shù)組中的查找 5. 替換空格 6. 從尾到...
    Observer_____閱讀 3,152評(píng)論 0 1
  • 數(shù)組的相關(guān)算法要簡(jiǎn)單一些,之前寫過(guò)的和現(xiàn)在遇到的整理了一下。 數(shù)組:數(shù)組是較為簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),它占據(jù)一塊連續(xù)的內(nèi)存...
    zero_sr閱讀 1,394評(píng)論 0 2
  • 1.感恩婆婆早早起床為我們做手工油餅,紅豆粥,并配有爽口有小菜,提前燒開一大壺開水晾好,讓我們起床后先喝溫開水排腸...
    金剛家人閱讀 148評(píng)論 0 0

友情鏈接更多精彩內(nèi)容