劍指offer 二維陣列中查詢 03

2021-06-20 16:53:03 字數 2120 閱讀 1888

#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 思路有三種,...