美文网首页
l2 在二维数组中寻找数字

l2 在二维数组中寻找数字

作者: 张霸天 | 来源:发表于2017-09-30 21:18 被阅读0次

数组数字从左到右递增
从上到下递增

绿色是剩下查找范围, 永远是跟右上角的数字比较大小

类似

image.png image.png image.png image.png image.png
#include <iostream>
#include <stack>


//** matrix 数组
//** row 行
//** column 列
//** number 要查找的数字
bool Find(int * matrix, int rows ,int columns, int number) {
    bool found = false;
    
    
    // 算法的核心思想是从右上角往左下角查找,因为左边的数字比右边的数字小,上边的数字比下边小,所以两边同时缩小范围
    if (matrix != NULL && rows > 0 && columns > 0) {
        int row = 0;
        int column = columns - 1;
        while (row < rows && column >= 0 ) {
            if (matrix[row * columns + column] == number) { // 如果发现数字就跳出循环了
                found = true;
                break;
            } else {
                if (matrix [row * columns + column] > number) { // 比右边的数字小,则查找左边的,比右边的数字大,则这一行就不可能有要找的数字
                    column--;
                } else {
                    row++;
                }
            }
        }
        return found;
    }
    return found;
}

int main() {
    int matrix[] = {1,2,8,9,
                   2,3,9,12,
                   4,7,10,13,
                   6,8,11,15};
    
    if (Find(matrix, 4, 4, 7)) {
        printf("found\n");
    } else {
        printf("not found\n");
    }
    
    return 0;
}

相关文章

  • l2 在二维数组中寻找数字

    数组数字从左到右递增从上到下递增 绿色是剩下查找范围, 永远是跟右上角的数字比较大小 类似

  • 1. 数组与矩阵

    [toc] 3. 数组中重复的数字 思路:数组数字范围为1-n,统计count[num]即可 4. 二维数组中的查...

  • 2.3.1 数组

    面试题3:数组中重复的数字 面试题4:二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一...

  • 和我一起在LeetCode刷题吧(每天一题LeetCode

    目 录 分类 1.数组 和为零的N个唯一整数 搜索插入位置 有多少小于当前数字的数字 数组中重复的数字 二维数组中...

  • 剑指Offer(一)

    题目汇总03.数组中重复的数字(简单),本题考查数组04.二维数组中的查找(简单),本题考查数组05.替换空格,本...

  • java学习第九章(数组)

    数组 数组的循环 数字12345倒序打印 二维数组 二维数组的循环 数组找到最大值 数组的排序(冒泡算法) 变量交...

  • leetcode的每日一题更新(Range Addition I

    题目:给两个数字m,n和一个二维数组ops,两个数字代表一个二维数组,所有的元素都是0,而二维数组里每个ops[[...

  • 剑指offer

    面试题3——数组中重复的数字 使用LinkedHashMap,有序存放。 面试题4——二维数组中的查找 首先选...

  • jni中java和c++二维数组和string数组的转换

    二维数组和String数组在JNI中,二维数组和String数组都被视为object数组,因为数组和String被...

  • 剑指offer——JAVA版

    Array 数组题目汇总[18题] [剑指offer] 二维数组中的查找 [剑指offer] 旋转数组的最小数字 ...

网友评论

      本文标题:l2 在二维数组中寻找数字

      本文链接:https://www.haomeiwen.com/subject/comnextx.html