#include #include //#注意知識點
//1. 當問題比較複雜時,應該通過具體的例子找到規律;
//2. 二維陣列中,應該通過行號和列號計算出相對於陣列首位址的偏移量;
//3. 注意函式中的陣列引數怎麼定義,怎麼傳引數,又是怎麼取元素的;
//4. 注意二維陣列的定義;居然都忘了;
//自己寫的,驗證沒問題
/*bool find(int *matrix,int rows,int columns,int number)
int i=0,j=columns-1;
while(i=0)
else if(matrix[i*columns+j]>number)
else
}return false;
}*///書上的
bool find(int* matrix, int rows, int columns, int number)
else if(matrix[row * columns + column] > number)
-- column;
else
++ row;}}
return found;
}//*****===測試************===
void test(char * testname, int * matrix, int rows, int columns, int number, bool expected)
// 1 2 8 9
// 2 4 9 12
// 4 7 10 13
// 6 8 11 15
// 要查詢的數在陣列中
void test1()
, , , };
test("test1", (int*)matrix, 4, 4, 7, true);
}// 1 2 8 9
// 2 4 9 12
// 4 7 10 13
// 6 8 11 15
// 要查詢的數不在陣列中
void test2()
, , , };
test("test2", (int*)matrix, 4, 4, 5, false);
}// 1 2 8 9
// 2 4 9 12
// 4 7 10 13
// 6 8 11 15
// 要查詢的數是陣列中最小的數字
void test3()
, , , };
test("test3", (int*)matrix, 4, 4, 1, true);
}// 1 2 8 9
// 2 4 9 12
// 4 7 10 13
// 6 8 11 15
// 要查詢的數是陣列中最大的數字
void test4()
, , , };
test("test4", (int*)matrix, 4, 4, 15, true);
}// 1 2 8 9
// 2 4 9 12
// 4 7 10 13
// 6 8 11 15
// 要查詢的數比陣列中最小的數字還小
void test5()
, , , };
test("test5", (int*)matrix, 4, 4, 0, false);
}// 1 2 8 9
// 2 4 9 12
// 4 7 10 13
// 6 8 11 15
// 要查詢的數比陣列中最大的數字還大
void test6()
, , , };
test("test6", (int*)matrix, 4, 4, 16, false);
}// 魯棒性測試,輸入空指標
void test7()
void main()
劍指offer 二維陣列中查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和一 個整數,判斷陣列中是否含有該整數。public class solution 因為陣列每一行都按照從左到右遞增的順序排序,每一列都按照從上到下...
劍指offer 二維陣列中查詢
從今天開始每天一題,除了節假日。在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution return false class solut...
劍指offer 二維陣列中查詢
要求如下 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 示例如下 7,1,2,8,9 2,4,9,12 4,7,10,13 6,8,11,15 思路有三種,...