第三题:有序二维数组查找问题

简介: 有序二维数组查找问题问题描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完 成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

有序二维数组查找问题

问题描述

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完 成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

解题思路

从第一行最右边的数开始比,如果比目标数小,则删除行;若等于,则返回true;若大,则删除列;

java实现

private static boolean containTarget(int[][] arr, int target) {
    // TODO Auto-generated method stub
    int col=arr[0].length-1;
    int row=0;
    while(col>=0&&row<=arr.length-1) {//arr.length为二维数组的行数
        if (arr[row][col]==target) {
            return true;
        }else if (arr[row][col]>target) {
            col--;
        }else if (arr[row][col]<target) {
            row++;
        }
    }
    return false;
}
目录
相关文章
|
8月前
|
设计模式 算法 Java
【数据结构和算法】子数组最大平均数 I
​ 原题链接:力扣 643 题 子数组最大平均数 I 给你一个由n个元素组成的整数数组nums和一个整数k。 请你找出平均数最大且长度为k的连续子数组,并输出该最大平均数。 任何误差小于10-5的答案都将被视为正确答案。 ​
78 3
|
8月前
|
存储 人工智能 Java
【线性表 - 数组和矩阵】
int[][] reshapedNums = new int[r][c]; int index = 0; for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) { reshapedNums[i][j] = nums[index /
|
8月前
|
算法 测试技术 Serverless
【二分查找】【C++算法】378. 有序矩阵中第 K 小的元素
【二分查找】【C++算法】378. 有序矩阵中第 K 小的元素
数据结构|排序总结(1)|直接插入排序
数据结构|排序总结(1)|直接插入排序
|
8月前
|
算法 测试技术 C#
【键值皆有序map 线段树 数学 】100240. 最小化曼哈顿距离
【键值皆有序map 线段树 数学 】100240. 最小化曼哈顿距离
C#基础⑥.2——数组(冒泡排序、求最值、数组排序、forr反转)
一次语文测试后,老师让班长统计每一个学生的成绩并计算全班(全班共5人)的平均成绩,然后把所有成绩显示出来。
|
8月前
leetcode-378:有序矩阵中第 K 小的元素
leetcode-378:有序矩阵中第 K 小的元素
45 0
|
8月前
|
算法 程序员 索引
【算法训练-二分查找 一】【基本二分】二分查找、在排序数组中查找元素的第一个和最后一个位置
【算法训练-二分查找 一】【基本二分】二分查找、在排序数组中查找元素的第一个和最后一个位置
66 0
|
算法 测试技术 C++
C++二分查找算法:有序矩阵中的第 k 个最小数组和(一)
C++二分查找算法:有序矩阵中的第 k 个最小数组和
|
算法 测试技术 C#
C++二分查找算法:有序矩阵中的第 k 个最小数组和(二)
C++二分查找算法:有序矩阵中的第 k 个最小数组和