1 Star 0 Fork 0

Byte/algorithm

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
array_4.java 1.31 KB
一键复制 编辑 原始数据 按行查看 历史
Gavery 提交于 2022-04-10 11:30 +08:00 . review
package arrays;
/**
* 题目: 二维递增数组求某个值的下标
* y: 1 3 5
* 2 4 6
*
* 返回4的坐标[1,1]
*
* @Author Gavin
* @date 2021.12.08 21:48
*/
public class array_4 {
/**
* 解题思路:
* 由于二维数组行和列都是递增的,所有从数组的右上角开始寻找
* 如果右上角的值小于目标值,说明这一行的都小于目标值,然后元素向下移动
* 如果右上角的值大于目标值,说明这一行的都大于目标值,元素向左移动
*/
public static int[] solution(int[][] arrays,int target){
//首先是边界值判断
if(arrays==null||arrays.length==0||arrays[0]==null||arrays[0].length==0)
return new int[]{-1,-1};
//获取二维数组的行下标和列下标
int i=0,j=arrays[0].length-1;
while (i<arrays.length&&j>=0){
if(arrays[i][j]>target)j--;
else if(arrays[i][j]<target)i++;
else if(arrays[i][j]==target)return new int[]{i,j};
}
return new int[]{-1,-1};
}
public static void main(String[] args) {
int[][] arrays=new int[][]{{1,2,3,4},{5,6,7,8}};
int[] solution = solution(arrays, 6);
System.out.println(solution[0]);
System.out.println(solution[1]);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Gavery/algorithm.git
git@gitee.com:Gavery/algorithm.git
Gavery
algorithm
algorithm
master

搜索帮助