二维数组中的查找(java版)
2017-06-13 10:00
309 查看
【题目描述】在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
【解题思路1】
//1. 按行遍历二维数组,当前行遍历中,遇到比目标大的数字,则停止遍历。进入下一行的遍历。直到找到该数字,或遍历结束。
【解题思路2】
//1.利用二维数组由上到下,由左到右递增的规律,那么选取右上角或者左下角的元素a[row][col]与target进行比较。
//2.当target小于元素a[row][col]时,那么target必定在元素a所在行的左边, 即col–;
//3.当target大于元素a[row][col]时,那么target必定在元素a所在列的下边, 即row++;
【解题思路1】
//1. 按行遍历二维数组,当前行遍历中,遇到比目标大的数字,则停止遍历。进入下一行的遍历。直到找到该数字,或遍历结束。
public class Solution { public boolean Find(int target, int [][] array) { int len1 = array.length; if(len1 == 0){ return false; }else{ int len2 = array[0].length, inx = len2; for(int i=0; i<len1; i++){ for(int j=0; j<inx; j++){ if(array[i][j] == target){ return true; } if(array[i][j]>target){ inx = j; break; } } } return false; } } }
【解题思路2】
//1.利用二维数组由上到下,由左到右递增的规律,那么选取右上角或者左下角的元素a[row][col]与target进行比较。
//2.当target小于元素a[row][col]时,那么target必定在元素a所在行的左边, 即col–;
//3.当target大于元素a[row][col]时,那么target必定在元素a所在列的下边, 即row++;
public class Solution { public boolean Find(int [][] array,int target) { int row=0; int col=array[0].length-1; while(row<=array.length-1&&col>=0){ if(target==array[row][col]) return true; else if(target>array[row][col]) row++; else col--; } return false; } }
相关文章推荐
- 黑马程序员----------java基础知识(6)之数组查找和二维数组及其应用
- 剑指offer题目3-二维数组中的查找(JAVA实现)
- 【剑指offer-Java版】03二维数组中的查找
- 剑指OFFER(java)-二维数组中的查找
- 剑指Offer:面试题3——二维数组中的查找(java实现)
- java个人学习笔记05(进制装换+排序查找+二维数组)
- 剑指Offer面试题3(Java版):二维数组中的查找
- 剑指offer 数据结构与算法 二维数组查找 java 实现
- 剑指offer面试题3:二维数组中的查找 java实现
- 剑指offer--二维数组中的查找 java
- 剑指offer面试题3 二维数组中的查找 (java)
- 剑指Offer面试题3(Java版):二维数组中的查找
- 二维数组中的查找(Java版)
- java 基础数据遍历(2)----二维数组查找
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
- 剑指offer算法 java实现 二维数组中的查找
- 面试题3 二维数组中的查找 java实现
- 剑指offer刷题之java实现的二维数组中的查找
- 剑指offer题解【二维数组中的查找】-java
- 剑指offer:二维数组中的查找(java)