在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù),判斷數(shù)組中是否含有該整數(shù)。
二分查找,復(fù)雜度nlogn
bool Find(vector<vector<int>> array1, int target)
{ int rowCount,colCount; int mid=0; rowCount = array1.size(); colCount = array1[0].size(); for(int i=0 ; i<rowCount ; i++) { int low = 0; int high = colCount - 1;// int mid; while(low <= high) { mid = (low + high)/2; if(target == array1[i][mid]) return true; else if(target < array1[i][mid]) { high = mid -1; } else if(target > array1[i][mid]) { low = mid+1; } } } return false;//必須放在最外層,否則可能造成沒有輸出(編譯通不過)}新聞熱點
疑難解答