這篇文章主要介紹了C++如何實現(xiàn)在二維數(shù)組中的查找,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)科技有限公司專業(yè)互聯(lián)網(wǎng)基礎服務商,為您提供托管服務器,高防服務器租用,成都IDC機房托管,成都主機托管等互聯(lián)網(wǎng)服務。題目:
在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)。
1、思路
首先選取數(shù)組中右上角的數(shù)字。如果該數(shù)字等于要查找的數(shù)字,查找過程結束;如果該數(shù)字大于要查找的數(shù)組,剔除這個數(shù)字所在的列;如果該數(shù)字小于要查找的數(shù)字,剔除這個數(shù)字所在的行。也就是說如果要查找的數(shù)字不在數(shù)組的右上角,則每一次都在數(shù)組的查找范圍中剔除一行或者一列,這樣每一步都可以縮小查找的范圍,直到找到要查找的數(shù)字,或者查找范圍為空。
2、舉例
如果在一個二維數(shù)組中找到數(shù)字7,則返回true,如果沒有找到,則返回false。
1 2 8 9
2 4 9 12
4 7 10 13
6 8 11 15
查找過程如下:
3、編程實現(xiàn)
class Solution { public: bool Find(int target, vector> array) { int rows = array.size(); int cols = array[0].size(); if(!array.empty() && rows > 0 && cols > 0){ int row = 0; int col = cols - 1; while(row < rows && col >= 0){ if(array[row][col] == target){ return true; } else if(array[row][col] > target){ --col; } else{ ++row; } } } return false; } };
感謝你能夠認真閱讀完這篇文章,希望小編分享C++如何實現(xiàn)在二維數(shù)組中的查找內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設計公司,關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián)成都網(wǎng)站設計公司,詳細的解決方法等著你來學習!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、網(wǎng)站設計器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。