劍指offer題3_二維數組的查找

一.題目:

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

二.分析:

1.可以從左下角或者右上角進行查詢,這樣可以保證每一次查詢排除一行或者一列。
2.設計完算法,一定要準備測試用例,走一遍,才能確保正確。
(1)功能測試
(2)特殊輸入測試

三.答案:

bool arrayarray_search(int* table, int row, int col, int val) {
        int i = row - 1, j = 0;

        while (i >= 0 && j < col) {
                if (table[i * col + j] > val) {
                        i--;
                } else if (table[i * col + j] < val) {
                        j++;
                } else {
                        return true;
                }
        }

        return false;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章