JZ4 二维数组中的查找(牛客Java,三种方法)

news/2024/11/7 21:40:38/

题目链接:二维数组中的查找_牛客题霸_牛客网

描述

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

[

[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]

]

给定 target = 7,返回 true。

给定 target = 3,返回 false。

数据范围:矩阵的长宽满足 0 \le n,m \le 5000≤n,m≤500 , 矩阵中的值满足 0 \le val \le 10^90≤val≤109
进阶:空间复杂度 O(1)O(1) ,时间复杂度 O(n+m)O(n+m)

示例1

输入:

7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]

返回值:

true

说明:

存在7,返回true   

第一种方法:暴力解题法

思路

遍历整个二维数组,找到返回true,否则返回false

    public boolean Find (int target, int[][] array) {for(int i = 0 ; i < array.length ; i++){for(int j = 0 ; j< array[i].length ; j++){if(array[i][j] == target){return true;}}}return false;}

第二种方法:二分查找法

思路

将二维数组的每个一维数组传入二分查找,如果找到就返回true,没有就返回false

    public int searchsecond(int[] array,int target){int left=0;int right = array.length-1;while(left <= right){int mid = (right-left)/2 + left;if(target < array[mid]){right = mid-1;}else if(target > array[mid]){left = mid+1;}if(target == array[mid]){return 1;}}return -1;}public boolean Find (int target, int[][] array) {for(int i = 0 ; i < array.length ; i++){int is = searchsecond(array[i],target);if(is > 0){return true;}}return false;}

第三种方法:Z字查找法

思路

从左下或者右上这两个角出发,

因为对于左下角而言:行是增,列是减

对于右上角而言:行是减,列是增

这样我们就可以通过大小来控制遍历数组,如果找到返回true,没有就返回false

    public boolean Find (int target, int[][] array) {int line = array.length-1;int row = 0;while(line >= 0 && row <= array[0].length-1){int index = array[line][row];if(index < target){row++;}else if(index > target){line--;}if(index == target){return true;}}return false;}


http://www.ppmy.cn/news/506255.html

相关文章

免费代理IP网站

免费代理IP网站 西刺免费代理&#xff1a;http://www.xicidaili.com/ 米扑代理&#xff1a;http://proxy.mimvp.com/free.php?proxyin_hp http://www.66ip.cn/ http://www.goubanjia.com 这个是githup上一个开源的免费代理池&#xff1a;https://github.com/WYL-BruceLong…

python代理IP的使用

python代理IP的使用 # 代理ip """ 客户端和服务器之间通过网络进行通信。为什么客户端能够正确的找到服务器、服务器也能够 正确的找到客户端&#xff0c;涉及到网络中的IP地址。在同一个网络下IP地址是唯一的。 """""" 代理ip等…

在线代理 网页代理 ip代理 在线代理ip 代理ip 网页代理ip ip在线代理

在线代理 网页代理 ip代理 在线代理ip 代理ip 网页代理ip ip在线代理 在线代理 网页代理 ip代理 在线代理ip 代理ip 网页代理ip ip在线代理 posted on 2014-03-04 15:44 lexus 阅读( ...) 评论( ...) 编辑 收藏 转载于:https://www.cnblogs.com/lexus/p/3580511.html

2023-5-8分享免费代理ip

实时更新代理IP:http://www.857ip.cn:8081 182.139.110.529000高匿名HTTP四川省成都市 电信0.6秒2023-05-08 16:31:01182.139.110.2079000高匿名HTTP四川省成都市 电信4秒2023-05-08 15:31:01222.74.73.20242055高匿名HTTP内蒙古自治区赤峰市 电信1秒2023-05-08 14:31:0127.42…

Socks5代理和IP代理

Socks5代理和IP代理是常用的网络代理服务&#xff0c;它们为用户提供了匿名访问和保护隐私的功能。在本文中&#xff0c;我们将介绍这两种代理的基本概念和工作原理&#xff0c;并展示如何编写一个简单的代理服务器。 一、什么是Socks5代理和IP代理&#xff1f; Socks5代理…

IP切换代理 免费资源共享

IP代理免费资源共享 闪臣代理 标题兑换网址&#xff1a;https://shanchendaili.com/ 在充值页面点击兑换验证码复制输入就可以啦~ 日付兑换码 RT80c0ea0f7d00A9C883529a RTe5a1a66e33DFF08CE4BAe7 RT84b92c1cc86A53CCE36710 RT184275d937519897881565 RT06863335834B7834DD34…

记一次内网环境正向代理极光推送

背景 公司正式服务器都是局域网环境&#xff0c;通过一台有外网的服务器作跳板机&#xff0c;使用nginx反向代理来访问服务。 这样一来&#xff0c;局域网内的服务就无法访问外网&#xff0c;导致下图报错。 解决问题 当时从csdn上找到了解决方案&#xff0c;由于第一次写博…

免费代理ip地址(部分验证过,可使用)

免费代理ip地址 纯真IP库&#xff08;用于查询ip地址归属地&#xff09;. 66免费代理网&#xff08;#推荐&#xff09;. 西刺免费代理IP. 酷伯伯HTTP代理. 快代理. proxy360.cn. 站大爷. Free Proxy List. 年少(#不稳定). 全网代理IP. IP海. 每日代理&#xff08;#不推荐&…